Как узнать выбранный идентификатор spinner в android, создающий программно

У меня есть 6 прядильщиков, создайте их динамически.

List<spinner>listSpinner = new ArrayList<spinner>();
Spinner sp;
for(int i;0;i<6; i++)
{
 sp= new Spinner(this);
 sp.setId(i);
// load data on spinner
 listSpinner.add(sp); 
}
</spinner></spinner>

Теперь я обеспокоен тем, как узнать конкретный идентификатор щелчка.

если я нажму на третий счетчик, как получить этот счетчик. я пробую это:

sp.setOnItemSelectedListener(new OnItemSelectedListener() {

 @Override
 public void onItemSelected(AdapterView<!--?--> parent, View view1, int pos, long id) {

 for (int d = 0; d < listSpinner.size(); d++){

 if (listSpinner.get(d).getId()==(id)){ // i am not clear about id

 spinnerString =listSpinner.get(d).getSelectedItem().toString();
 Log.i("SPINN", "Selected Spinner value=" + spinnerString );

 }
 }
 return;


 }
 @Override
 public void onNothingSelected(AdapterView<!--?--> arg0) {

 }
 });

но может получить идентификатор счетчика, а не счетчик.

2 ответа

Делай это так:

for (int d = 0; d < listSpinner.size(); d++)
{
 Spinner s = (Spinner)findViewById(listSpinner.get(d));
 Log.i("SPINN", "Selected Spinner value=" + s.getSelectedItem().toString() );
}

Дело в том, что вам нужно вызвать findViewById, используя id в вашем listSpinner прежде чем получать выделенный элемент.


Чтобы получить идентификатор выбранного счетчика внутри onItemSelected, попробуйте это

@Override
public void onItemSelected(AdapterView<!--?--> parent, View view1,
 int pos, long id) {

 for (int d = 0; d < listSpinner.size(); d++){

 if (listSpinner.get(d).getId()==parent.getId()){ // parent.getId() returns the id of selected spinner

 // your code here

 }
 }
 return;

 }

licensed under cc by-sa 3.0 with attribution.