-3

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

13
  • Could you be more specific? Put the code you've tried Commented Oct 4, 2016 at 8:53
  • @Shailee please post your code what you have tried? Commented Oct 4, 2016 at 8:54
  • google it first. stackoverflow.com/questions/13716251/… Commented Oct 4, 2016 at 8:56
  • ok i am editin n sending my code Commented Oct 4, 2016 at 8:57
  • @brahmyadigopula thanks but am not able to set data on selection of an item above given code of mine is not allowing me to select any item from spinner and loop goes in infinite mode Commented Oct 4, 2016 at 9:02

1 Answer 1

0

In your project string.xml file write the data you want to put in spinner example:

<string-array name="cooking_arrays"> <item>Spoon</item> <item>Cup</item> <item>1/2 Cup</item> <item>3/4 Cup</item> </string-array> 

then in project layout in spinner properties write in entries field @array/cooking_arrays

then in your activity

 spinner1 = (Spinner) findViewById(R.id.spinner1); String quintity= String.valueOf(spinner1.getSelectedItem()); switch(quintity){ case "Spoon": //what you want to do break; case "Cup": //what you want to do break;} 
Sign up to request clarification or add additional context in comments.

1 Comment

yes thanks but main concern is hoe do i handle for multipl spinners

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.