Вы реализуете интерфейс View.OnClickListener
, который имеет только один метод для реализации onClick
:
/**
* Interface definition for a callback to be invoked when a view is clicked.
*/
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
Ваши методы onClick2
и onClick3
не являются частью этого интерфейса и, следовательно, не являются называется. Кнопка False
при нажатии вызывает метод onClick
. Вы можете разместить там точку останова и отладить это.
Чтобы исправить эту проблему, вы можете использовать оператор switch
:
@SuppressLint("SetTextI18n")
public void onClick(@NonNull View v) {
switch(v.getId()) {
case R.id.button:
trueButtonClicked();
break;
case R.id.button2:
diagnose();
break;
case R.id.button3:
falseButtonClicked();
break;
}
}
public void trueButtonClicked() {
if (stringListCounter < stringIdList.length - 1) {
stringListCounter++;
text1.setText(stringIdList[stringListCounter]);
}
concussued = concussued - 1;
}
public void falseButtonClicked() {
if (stringListCounter < stringIdList.length - 1) {
stringListCounter++;
text1.setText(stringIdList[stringListCounter]);
}
concussued = concussued + 1;
}
public void diagnose() {
if (concussued >= 2) {
text1.setText("Concussed!");
} else {
text1.setText("Not concussed");
}
}