Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java editText为空,导致应用程序在尝试计算时崩溃_Java_Android - Fatal编程技术网

Java editText为空,导致应用程序在尝试计算时崩溃

Java editText为空,导致应用程序在尝试计算时崩溃,java,android,Java,Android,我有一个应用程序,有4个EditText和一个按钮,用来计算给定的输入 当其中一个为空时,应用程序就会崩溃 单击按钮时,如果EditText为空,如何验证是否引发错误检查EditText是否为空 试试下面的代码 if(editText.getText().toString.length() == 0){ // Display toast Toast.makeText(getApplicationContext(), "Please enter something

我有一个应用程序,有4个EditText和一个按钮,用来计算给定的输入

当其中一个为空时,应用程序就会崩溃


单击按钮时,如果EditText为空,如何验证是否引发错误检查EditText是否为空

试试下面的代码

if(editText.getText().toString.length() == 0){
        // Display toast 
        Toast.makeText(getApplicationContext(), "Please enter something !",Toast.LENGTH_LONG).show();
}

或者,您可以使用名为

的库。首先,您需要将编辑文本和按钮与id链接起来

EditText editText1 = findViewById(R.id.editText1);
EditText editText2 = findViewById(R.id.editText2);
EditText editText3 = findViewById(R.id.editText3);
EditText editText4 = findViewById(R.id.editText4);
现在,您可以使用下面的代码从editText中获取值

 String data = editText.getText();
用于检查空值

if (data.isEmpty ){

Toast.makeText(getApplicationContext(),"the data is "+data,Toast.SHORT_LENGTH).show;

}

您可以使用
TextUtils.isEmpty(stringData)
,这是首选。对于
string.isEmpty()
,空字符串值将抛出
NullPointerException

TextUtils
将始终返回一个
布尔值。在代码中,前者只调用另一个的等价项,再加上一个空检查

EditText myEditText1 = findViewById(R.id.editText1);
EditText myEditText2 = findViewById(R.id.editText2);
EditText myEditText3 = findViewById(R.id.editText3);
EditText myEditText4 = findViewById(R.id.editText4);

String myData1 = myEditText1.getText().toString();
String myData2 = myEditText2.getText().toString();
String myData3 = myEditText3.getText().toString();
String myData4 = myEditText4.getText().toString();

if(!TextUtils.isEmpty(myData1) && !TextUtils.isEmpty(myData2) && !TextUtils.isEmpty(myData3) && !TextUtils.isEmpty(myData4)) {
    //use edit text data
} else {
    Toast.makeText(this, "Fields value can not be empty",Toast.LENGTH_SHORT).show();
}

发布崩溃日志。您可能会收到NumberFormatException。因为您可能认为空字符串将被解析为0。这是完全错误的,如果你想检查字符串长度,那么逻辑条件应该是
==0
,我一直在疯狂地搜索谷歌和YouTube,试图找出一个修复方法,但我一直在尝试的一切都不起作用。但是这些代码看起来不一样,所以感谢大家稍后会试用,然后给出反馈,如果是int?那么还有TextUtils.isEmpty()工作正常。因为,当您将数据输入到类似字符串类型、int-tpye或其他类型的edittext中时,所有数据都被格式化为字符串。您可以将此数据解析为int,以便进一步使用。字符串myData1=myEditText1.getText().toString();int myInt=Integer.parseInt(myData1);它说TextUtils不能应用于Int。你能与之共享你的代码吗?然后我可以看看那里发生了什么。谢谢你的帮助。我现在要试一下。