我正在尝试弹出一条消息,指出 EditText
为空。我不能让它工作。我猜它正在尝试将 Integer
转换为 String
。
Random randomGenerator = new Random();
int randomNumber = randomGenerator.nextInt(21);
public void buttonPressed (View view){
System.out.println(randomNumber);
EditText numberField = (EditText)findViewById(R.id.textField);
String numberString = numberField.getText().toString();
int numberText = Integer.parseInt(numberString);
String message = "";
if (randomNumber == numberText){
message = "Correct Number";
}
else if (randomNumber > numberText){
message = "Number too Low";
}
else if (randomNumber < numberText){
message = "Number too High";
}
else if(numberString.matches("")){
Toast.makeText(getApplicationContext(), "Enter a Number!", Toast.LENGTH_LONG).show();
return;
}
Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
}
最佳答案
如果您的应用程序崩溃:
如果崩溃是 NumberFormatException
:
将对 parseInt
的调用封装在 try/catch
block 中,并首先检查 EditText
是否为空:
if (numberString.isEmpty()){
Toast.makeText(getApplicationContext(), "Enter a Number!", Toast.LENGTH_LONG).show();
}else{
try {
int numberText = Integer.parseInt(numberString);
// the rest of your code
} catch (NumberFormatException e) {
Log.e(getClass.getSimpleName(), e);
Toast.makeText(getApplicationContext(), "Enter a Number!", Toast.LENGTH_LONG).show();
}
}
EDIT :为确保用户只能插入数字,您可以使用 EditText
的 inputType
属性:
<EditText
android:id="@+id/number_edit_text"
style="@style/yourStyle"
android:inputType="number"/>
关于java - Toast 如果 EditText 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34750267/