Проверка того, какой ArrayAdapter Spinner использует в настоящее время - PullRequest
0 голосов
/ 06 октября 2018

У меня есть четыре ArrayAdapter, которые используют 4 разных массива

adapter1 = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray( R.array.array1) );
adapter2 = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array. array2));
adapter3 = new  ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array. array3));
adapter4 = new  ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_spinner_item,getResources().getStringArray(R.array. array4));

У меня есть два счетчика

spinnerFrom = findViewById(R.id.unit_From_spinner)
spinnertTo = findViewById(R.id.unit_To_spinner);

При нажатой кнопке spinnerFrom и spinnertTo заполняется с указанным адаптеромпо коду.

Моя основная идея заключалась в том, чтобы написать в проекте что-то вроде этого:

if (spinnerFrom use adapter 1 or adapter 2 || spinnerTo use adapter 1 or adapter 2){
some code
}
else if (spinnerFrom use adapter 3 or adapter 4 || spinnerTO use adapter 3 or adapter 4){
some code
}

Вопрос: Как я могу получить используемый адаптер и указать его имя (adapter1 / adapter2 / adapter3 / adapter4) с помощью spinnerFrom и spinnertTo вращателей и создание структуры if-else (или я должен использовать swtich-case)?

Спасибо!

1 Ответ

0 голосов
/ 06 октября 2018

Должна сработать простая проверка на равенство:

if (spinner.getAdapter() == adapterInstance) //etc

Обычно вы не хотите делать это в Java, так как она сравнивает экземпляры вместо значений, но в этом случае она должна делать то, что вынужно, это сравнить экземпляры.

...