我正在尝试开发一个应用程序,将用户的输入数字与计算机中随机生成的数字进行比较,具体取决于输入的数字是否高于,低于或等于生成的数字,有不同的消息输出。但是每当我尝试运行它时,应用程序崩溃(使用this stacktrace)。这是我的方法代码:
如果有人能够认识到它崩溃的原因那就太棒了 - 对Android来说很新,所以很难看到错误。
public void guessingGame (View v)
{
EditText guess = (EditText) findViewById(R.id.ETguess);
TextView guessError = (TextView) findViewById(R.id.guessError);
TextView compGuess = (TextView) findViewById(R.id.tvCompGuess);
int guessValue = Integer.parseInt(guess.getText().toString());
if (guessValue > 20)
{
guessError.setVisibility(View.VISIBLE);
guess.getText().clear();
}
else if (guessValue < 1)
{
guessError.setVisibility(View.VISIBLE);
guess.getText().clear();
}
else
{
int min = 1;
int max = 20;
Random r = new Random();
int i = r.nextInt(max - min + 1) + min;
int computerNumber = i;
compGuess.setText(i);
if (computerNumber > guessValue)
{
guessError.setText("Too low!");
}
else if (computerNumber < guessValue)
{
guessError.setText("Too high!");
}
else if (computerNumber == guessValue)
{
guessError.setText("Good Guess!");
}
}
}
答案 0 :(得分:1)
compGuess.setText(i);
您不能使用TextView.setText(int)将文本设置为任意整数。整数必须是字符串的资源ID(通常在res / values / strings.xml中定义,或从您的某个上游依赖项导入)。
如果要将TextView的内容设置为表示整数的字符串,则应该像这样执行
compGuess.setText(Integer.toString(i));