java - 在 onClickListener 中生成随机值时应用程序崩溃
问题描述
当我没有在 EditText 中输入任何内容然后我按下“猜测”按钮时,我的应用程序不断崩溃,我似乎无法找到我的代码的问题。
public void generateRandomNos(){
Random rand = new Random();
randomNumber = rand.nextInt(20)+1;
}
btnGuess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int guessValue = Integer.parseInt(etNumber.getText().toString());
String message;
if(guessValue > randomNumber){
message = "Lower !";
etNumber.setText("");
}
else if (guessValue < randomNumber){
message = "Higher !";
etNumber.setText("");
}
else{
message = "You got it right. GG ";
etNumber.setText("");
generateRandomNos();
}
Toast.makeText(MainActivity.this,message,Toast.LENGTH_SHORT).show();
}
});
EditText
当框中没有文本以及按下按钮时,应用程序不应崩溃。可能是什么问题呢?
解决方案
正如您在问题中提到的那样,当您未在编辑文本中输入任何内容时会发生此错误。
所以首先,检查是否edit text
为空,然后执行所需的操作
btnGuess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(!etNumber.getText.toString().equals("")) {
int guessValue = Integer.parseInt(etNumber.getText().toString());
String message;
if(guessValue > randomNumber){
message = "Lower !";
etNumber.setText("");
}
else if (guessValue < randomNumber){
message = "Higher !";
etNumber.setText("");
}
else{
message = "You got it right. GG ";
etNumber.setText("");
generateRandomNos();
}
Toast.makeText(MainActivity.this,message,Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this,"EditText Is empty",Toast.LENGTH_SHORT).show();
}
});
注意:并确保您使用
android:inputType="number"
属性来编辑文本,以便您只能获取数字作为输入
推荐阅读
- javascript - ReactJS - onSubmit 使用 Sendgrid 或类似的东西发送电子邮件
- git - Git 子模块在使用 SSH 的 TFS 构建上失败
- html - 选中复选框时如何折叠 CSS 网格行?
- javascript - Bootstrap 导航选项卡在移动设备上不可点击
- java - 如何将数组列表中的特定值添加到哈希映射?
- docker - Ngnix Docker 不提供内容
- css - 在 css 中的元素之间进行线程化,例如在发布软件中
- ffmpeg - 拆分 2 视频 FFMpeg
- javascript - 处理具有重复字段的消息
- sql - 从内存中的表中选择列