Переключить текстовое значение кнопки в Android Studio

1

Привет, сообщество stackoverflow,

Я решил начать изучать, как сделать Android Apps в Android Studio, и в качестве первого проекта я подумал, что было бы интересно сделать простую расчетную игру.

Сначала он генерирует случайную сумму, например 5 + 5. По сумме имеет 4 кнопки, на которых я хочу сгенерировать правильный ответ и три неправильных ответа. Игрок нажимает кнопку с правильным или неправильным ответом, и сумма и ответы снова генерируются.

Изображение 174551

    // Generate wrong answers and convert
    int wronganswer1 = (answ1) + 2;
    String wronganswer1string = Integer.toString(wronganswer1);
    int wronganswer2 = (answ1) - 2;
    String wronganswer2string = Integer.toString(wronganswer2);
    int wronganswer3 = (answ1) + 3;
    String wronganswer3string = Integer.toString(wronganswer3);

    //Add Text to the buttons
    Button ansb1 = (Button)findViewById(R.id.answerbutton1);
    ansb1.setText(answer);

    Button ansb2 = (Button)findViewById(R.id.answerbutton2);
    ansb2.setText(wronganswer1string);

    Button ansb3 = (Button)findViewById(R.id.answerbutton3);
    ansb3.setText(wronganswer2string);

    Button ansb4 = (Button)findViewById(R.id.answerbutton4);
    ansb4.setText(wronganswer3string);

Это заполняет текст на кнопках одним правильным ответом и тремя неправильными ответами. Проблема в том, что правильным ответом всегда будет кнопка вверху.

Мой вопрос в том, как переключать значения кнопок каждый раз, когда генерируется новая сумма. Поэтому правильный ответ не всегда будет на одной и той же кнопке.

  • 0
    Ну, я думаю, что это не вопрос для Android :) Одно из решений моей головы - сгенерировать случайное число от 0 до 3 и использовать инструкцию switch для выбора правильного ответа, а затем распределить остальные ответы на кнопки слева
Теги:
android-studio
button

2 ответа

1
Лучший ответ

Используйте массив для хранения ваших ответов.

String[] ans = new String[4];

int wronganswer1 = (answ1) + 2;
int wronganswer2 = (answ1) - 2;
int wronganswer3 = (answ1) + 3;

ans[0] = Integer.toString(answ1);
ans[1] = Integer.toString(wronganswer1);
ans[2] = Integer.toString(wronganswer2);
ans[3] = Integer.toString(wronganswer3);

Сохраните ссылки на Button со List.

List<Button> btns = new ArrayList<Button>(4);

btns.add((Button)findViewById(R.id.answerbutton1));
btns.add((Button)findViewById(R.id.answerbutton2));
btns.add((Button)findViewById(R.id.answerbutton3));
btns.add((Button)findViewById(R.id.answerbutton4));

Теперь, используйте Collections.shuffle() для рандомизации Button s

Collections.shuffle(btns);

и просто перебирайте List чтобы задать ответы.

for (int i = 0; i < 4; i++) {
    btns.get(i).setText(ans[i]);
}
  • 0
    Это именно то, что мне нужно, большое спасибо!
  • 0
    @TheDonger Рад помочь :)
Показать ещё 2 комментария
0

Вы должны настроить рандомизированное на кнопках так, чтобы строки перехватили вычисления, чтобы было похоже, что (правильный ответ) # перейдите на кнопку #, неправильный ответ: # - # перейти к кнопке #

Ещё вопросы

Сообщество Overcoder
Наверх
Меню