Как изменить вид текста на int и использовать его в математических операциях? - PullRequest
0 голосов
/ 16 марта 2020

Здравствуйте, я пытаюсь создать приложение, которое дает вам 2 случайных числа, и пользователь должен добавить 2 случайных числа, поэтому моя ошибка заключается в том, что случайные числа являются виджетами, а не целыми числами,

I пробовал сотни объяснений, но ничего не работает.

 public void action(View v){
    num1.setText(String.valueOf(randNum1.nextInt(10)));


    num2.setText(String.valueOf(randNum2.nextInt(10)));


    userAnswer.getText();

    if (num1 + num2){

    }
}

, и это ошибка:

неверные типы операндов для двоичного оператора '+' первый тип: TextView второй тип: TextView

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Ваша проблема хорошо описана ошибкой, которую вы получаете.

Из предоставленного вами фрагмента кода я предполагаю, что num1 и num2 являются ссылками на объекты textview.

Вы НЕ МОЖЕТ выполнять добавление к самим объектам textview, а скорее к их содержимому.

Итак, вы пытаетесь достичь этого:

public void action(View v){
     num1.setText(String.valueOf(randNum1.nextInt(10)));


   num2.setText(String.valueOf(randNum2.nextInt(10)));


   userAnswer.getText();

   String num1String = num1.getText().toString();
   String num2String = num2.getText().toString();

   int firstNumber = Integer.parseInt(num1String);
   int secondNumber = Integer.parseInt(num2String);

   if (firstNumber + secondNumber){
        // YOUR LOGIC
     }
 }

Или еще лучше, вы можете сохранить сгенерированные случайные числа для переменных и использовать их позже, например так:

 public void action(View v){


int randomNumberOne = randNum1.nextInt(10);
int randomNumberTwo = randNum2.nextInt(10);

     num1.setText(String.valueOf(randomNumberOne));


   num2.setText(String.valueOf(randomNumberTwo));

   userAnswer.getText();


   if (randomNumberOne + randomNumberTwo){
        // YOUR LOGIC
     }
 }
0 голосов
/ 16 марта 2020

Вы можете выполнить следующие шаги. я предполагаю, что randNum1 и randNum2 - это случайное число, а num1 и num2 - это TextView.

 public void action(View v){

num1.setText(String.valueOf(randNum1.nextInt(10)));
num2.setText(String.valueOf(randNum2.nextInt(10)));

userAnswer.getText(); 

 int randNumber1 = Integer.parseInt(num1.getText().toString());
 int randNumber2 = Integer.parseInt(num2.getText().toString());

if (randNumber1 + randNumber2 ){
  //your logic write here  
}else{}

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...