java - Toast 如果 EditText 为空

标签 java android

我正在尝试弹出一条消息,指出 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();
}

最佳答案

如果您的应用程序崩溃:

看看this question

如果崩溃是 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 :为确保用户只能插入数字,您可以使用 EditTextinputType 属性:

<EditText
    android:id="@+id/number_edit_text"
    style="@style/yourStyle"
    android:inputType="number"/>

关于java - Toast 如果 EditText 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34750267/

相关文章:

java - maven war 插件和自定义 Manifest 文件

java - 使用通用接口(interface)进行类转换而不发出警告

java - Android 调试器无法连接

java - 为什么我不能使用 captureNetworkTraffic ("");与IE

java - ClassNotFoundException,怎么办?

Android:如何获取 RecyclerView 的当前 X 偏移量?

android - 在 Android 4.0.3 中为选项菜单创建网格样式布局

android - 从android删除文件

javascript - 使用 loadUrl() 在 android webview 中加载 JavaScript

java - LocationManager 和跳跃坐标