Пишу приложение в Android Studio. Хочу в одном классе реализовать два разных слушателя.
Вот часть моего кода:
MyFragment extends Fragment implements AdapterView.OnItemSelectedListener, View.OnClickListener {
//my fields
private Spinner mySpinner;
@Ovveride
public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) {
//мой код
}
@Ovveride public void onNothingSelected(AdapterView<?>p){}
@Ovveride
public void onClick(View v) {
//мой код
}
@Ovveride
public void onCreate(Bundle b) {
super.onCreate(b);
//мой код
mySpinner = (Spinner) fragmentView.findViewById(R.id.my_spinner);
mySpinner.setOnItemSelectedListener(this);
На последней строке я получил ошибку:
'setOnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener)' in 'android.widget.AdapterView' cannot be applied to '(anonymous android.view.View.OnClickListener)'
Как исправить эту ошибку?
На enSO пишут, что так делать можно.
Если у вас myCheckBox
это CheckBox
то навесить action
можно таким способом
myCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if ( isChecked )
{
// perform logic
}
}
});
Интерфейс AdapterView.OnItemSelectedListener
относится к spinner
. Метод onItemSelected
отрабатывает только на нажатие на пункт в spinner
Я лоханулся, у меня строчка mySpinner.setOnItemSelectedListener(this);
находилась в локальном классе, о чем и написано в ошибке, поэтому надо было написать MyFragment.this
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вроде есть два приложения с похожей архитектуройВ одном после того, как развернул приложение, появляется в логе onRestart(); onResume(); в другом нет
Как правильно написать clone(), чтобы все элементы массива также копировались?