у меня есть список кнопок и я загружать их в список, как это:OnClick обработчик события для кнопки не выполняется из списка кнопок
positionButtons.add((Button) findViewById(R.id.positionBtn0));
positionButtons.add((Button) findViewById(R.id.positionBtn1));
positionButtons.add((Button) findViewById(R.id.positionBtn2));
Я добавляю обработчики событий, как это:
Button.OnClickListener currentPositionListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(this.getClass().getSimpleName(), "Current position selected");
setSelectedPositionButton((Button) view);
}
};
for (Button positionButton: positionButtons) {
positionButton.setOnClickListener(currentPositionListener);
}
обработчики событий никогда не получить казнены (никаких сообщений об ошибках, хотя), и мне нужно иметь отдельную переменную для каждой кнопки для обработчика события будет выполняться:
positionButton0.setOnClickListener(currentPositionListener);
Почему это происходит? Есть ли обходной путь, чтобы я мог просто добавлять кнопки в список и работать оттуда вместо того, чтобы проходить этап объявления отдельных переменных?
UPDATE:
Просьба ответить на актуальный вопрос и не рассматривать его в качестве поиска неисправностей. Если по вашему мнению и опыту это должно работать, вы можете просто добавить комментарий или ответ с фактическим рабочим примером. Я не пытаюсь отлаживать свой код, просто пытаясь получить больше информации.
Try 'View.OnClickListener currentPositionListener = новый View.OnClickListener() {.....};' 'Вместо Button.OnclickListener' –
вы можете поделиться полный исходный код. также попробуйте поставить Toast или использовать debug внутри 'onClick', чтобы убедиться, что этот метод не вызывается (потому что некогда лог-код не отображается) –
@AkshayBhat нет. Я уже пробовал это. – atas76