У меня есть Spinner в моем приложении, которое устанавливается и настраивается следующим образом:андроид вертушки спуски магического
final Spinner left = getLeftShiftSpinner(); //simple gets the Spinner by Id
left.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
left.setSelection(0);
try {
Log.d("test", "SHIFT_LEFT");
String s = content.shiftLeft(i);
content.clear();
updateScreen(s);
} catch (ScreenContent.WrongSyntaxException e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
Когда я компилирую все, и приложение запускается на моем устройстве я получаю выход «SHIFT_LEFT» из Log.d(...)
, но я не нажимал ни на что. Приложение просто началось, а затем, ничего не делая, запускается onItemSelectedListener
?? Кто-нибудь знает, почему?
Могу ли я подавить этот автомобиль 'onitemselected'-триггер или фильтровать ее каким-то образом? – wasp256
вы можете обращаться с ним вручную так или иначе. одним из вариантов было бы установить логическую переменную, чтобы по существу игнорировать первый триггер слушателя, а затем сбросить эту переменную 'onResume()'. – invertigo
добавил пример выше, просто не забудьте установить 'isInitTrigger' в true снова в' onResume() ' – invertigo