Android: два Spinner onItemSelected()
У меня есть два прядильника (day_spin и time_spin) за один Activity
. Я хочу сохранить выбранное значение day_spin в переменной. Возможно ли различие между двумя прядильщиками в том же Listener
? Или мне нужно написать собственный Listener
класс для каждого счетчика?
Также я хочу получить номер выбранного элемента. Например, у меня есть String Array с 6 элементами. Я выбираю номер 3. Как я могу получить идентификатор?
day_spin = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter_day = ArrayAdapter
.createFromResource(this, R.array.spinner_day_array,
android.R.layout.simple_spinner_item);
adapter_day
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
day_spin.setAdapter(adapter_day);
day_spin.setOnItemSelectedListener(this);
time_spin = (Spinner) findViewById(R.id.spinner1);
ArrayAdapter<CharSequence> adapter_time = ArrayAdapter
.createFromResource(this, R.array.spinner_time_array,
android.R.layout.simple_spinner_item);
adapter_time
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
time_spin.setAdapter(adapter_time);
time_spin.setOnItemSelectedListener(this);
Это мой Listener
:
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
DAY = parent.getItemAtPosition(pos).toString();
TIME = parent.getItemAtPosition(pos).toString();
}
Надеюсь, ты поможешь мне!
Ответы
Ответ 1
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
Spinner spinner = (Spinner) parent;
if(spinner.getId() == R.id.spinner1)
{
//do this
}
else if(spinner.getId() == R.id.spinner2)
{
//do this
}
}
Ответ 2
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
// An item was selected. You can retrieve the selected item using
//parent.getItemAtPosition(pos);
//Spinner spnir = (Spinner)parent;
parent.getItemAtPosition(pos);
TextView tvReadValue = (TextView) findViewById(R.id.tvReadValue);
switch (parent.getId())
{
case R.id.spinDimension:
tvReadValue.setText("spinDimension" + pos);
break;
case R.id.speedDimension:
tvReadValue.setText("speedDimension" + pos);
break;
}
Ответ 3
в onItemSelected
метод
int i = spinnerFirst.getSelectedItemPosition();
int j = spinnerSecond.getSelectedItemPosition();
String strName1 = yourFirstarray[i];
String strName2 = yourSecondarray[j];