I wanted to fill data inside multiple spinners with no repeated data into it
I have tried and filled the three spinners but still m not able to select the data properly so please help me providing some example
my scenario : When i select any item from 1 st spinner then that item should not be repeated in 2nd and 3rd spinner and same vice-versa for other two spinners
my code :
private Spinner sp1, sp2, sp3; ArrayList<String> MAinArrayList; ArrayList<String> TempList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.final_sp); sp1 = (Spinner) findViewById(R.id.spinner1); sp2 = (Spinner) findViewById(R.id.spinner2); sp3 = (Spinner) findViewById(R.id.spinner3); TempList = new ArrayList<String>(); MAinArrayList = new ArrayList<String>(); MAinArrayList.add("a"); MAinArrayList.add("b"); MAinArrayList.add("c"); MAinArrayList.add("d"); MAinArrayList.add("e"); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, MAinArrayList); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // dataAdapter.notifyDataSetChanged(); sp1.setAdapter(dataAdapter); final String strA = sp1.getSelectedItem().toString(); TempList.addAll(MAinArrayList); for (int i = 0; i < TempList.size(); i++) { if (TempList.get(i).equals(strA)) { TempList.remove(strA); break; } } for (int i = 0; i < TempList.size(); i++) { System.out.println("Templist " + (i) + "==>" + TempList.get(i)); } ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, TempList); dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // dataAdapter.notifyDataSetChanged(); sp2.setAdapter(dataAdapter2); // ArrayList<String> TempList1 = new ArrayList<>(); // TempList1.addAll(MAinArrayList); // if (TempList.size() > 0) { // TempList.clear(); // } //TempList.addAll(MAinArrayList); final String strB = sp2.getSelectedItem().toString(); final ArrayList<String> TempList1 = new ArrayList<>(); TempList1.addAll(TempList); System.out.println("Templist1 ADDDED" + TempList1); for (int i = 0; i < TempList1.size(); i++) { if (TempList1.get(i).equals(strB)) { TempList1.remove(strB); break; } System.out.println("removed templist " + TempList1); } for (int i = 0; i < TempList1.size(); i++) { System.out.println("TempList3 " + (i) + "==>" + TempList1.get(i)); } ArrayAdapter<String> dataAdapter3 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, TempList1); dataAdapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // dataAdapter.notifyDataSetChanged(); sp3.setAdapter(dataAdapter3); sp2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ArrayList<String> TempSP2 = new ArrayList<String>(); TempSP2.addAll(MAinArrayList); System.out.println("TempSP2 ==>" + TempSP2); String strC = sp3.getSelectedItem().toString(); String strA = sp1.getSelectedItem().toString(); for (int i = 0; i < TempSP2.size(); i++) { if (TempSP2.get(i).equals(strC)) { TempSP2.remove(strC); break ; } } for (int i = 0; i < TempSP2.size(); i++) { if (TempSP2.get(i).equals(strA)) { TempSP2.remove(strA); break; } } System.out.println("removed TempSP2 strAC" + TempSP2); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(SpinnerDemo.this, android.R.layout.simple_spinner_item, TempSP2); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // dataAdapter.notifyDataSetChanged(); sp2.setAdapter(dataAdapter); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); sp3.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ArrayList<String> TempSP3 = new ArrayList<String>(); TempSP3.addAll(MAinArrayList); System.out.println("TempSP3 ==>" + TempSP3); String strA = sp1.getSelectedItem().toString(); String strB = sp2.getSelectedItem().toString(); for (int i = 0; i < TempSP3.size(); i++) { if (TempSP3.get(i).equals(strA)) { TempSP3.remove(strA); break; } } for (int i = 0; i < TempSP3.size(); i++) { if (TempSP3.get(i).equals(strB)) { TempSP3.remove(strB); break; } } System.out.println("removed TempSP3 strAb" + TempSP3); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(SpinnerDemo.this, android.R.layout.simple_spinner_item, TempSP3); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // dataAdapter.notifyDataSetChanged(); sp3.setAdapter(dataAdapter); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { ArrayList<String> TempSP1 = new ArrayList<String>(); TempSP1.addAll(MAinArrayList); System.out.println("TempSP1 ==>" + TempSP1); String strB = sp2.getSelectedItem().toString(); String strC = sp3.getSelectedItem().toString(); for (int i = 0; i < TempSP1.size(); i++) { if (TempSP1.get(i).equals(strB)) { TempSP1.remove(strB); break; } } for (int i = 0; i < TempSP1.size(); i++) { if (TempSP1.get(i).equals(strC)) { TempSP1.remove(strC); break; } } System.out.println("removed TempSP1 strBC" + TempSP1); ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(SpinnerDemo.this, android.R.layout.simple_spinner_item, TempSP1); dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // dataAdapter.notifyDataSetChanged(); sp1.setAdapter(dataAdapter); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); Thanks in advance