如何检查edittext是不是为空?
Posted
技术标签:
【中文标题】如何检查edittext是不是为空?【英文标题】:How can I check if edittext is empty?如何检查edittext是否为空? 【发布时间】:2020-05-29 14:04:36 【问题描述】:我有两个编辑文本和一个计算按钮。我将输入两个数字,当我单击计算按钮时,我想将这两个数字相加。然后,当我单击该按钮时,我想通过 bundle 将这个结果显示在另一个活动中。但是,如果这些编辑文本为空,则会出现此应用停止等错误。我该如何解决这些问题?谢谢...
float number1,number2;
float resultNet;
Bundle bundle = new Bundle();
number1 = Float.parseFloat(edittext1.getText().toString());
number2 = Float.parseFloat(edittext2.getText().toString());
if((!"".equals(edittext1)) && (!"".equals(edittext2)))
// result = number1 - number2/4;
//bundle.putFloat("resultNet",resultnet);
Intent intent = new Intent(Calculations.this,CalculationsResults.class);
intent.putExtras(bundle);
startActivity(intent);
else
resultNet = number1 - number2/4;
bundle.putFloat("resultNet",resultnet);
Intent intent = new Intent(Calculations.this,CalculationsResults.class);
intent.putExtras(bundle);
startActivity(intent);
resultCalculation = findViewById(R.id.result);
Bundle bundle = getIntent().getExtras();
float resultNet = bundle.getFloat("resultNet");
if(bundle!= null)
resultCalculation.setText("Sum Result:"+ resultNet);
【问题讨论】:
想想edittext1
是什么类型。
所有编辑文本都是浮动的。
这毫无意义。 a) 您不能将 String
与 float
进行比较并期望它相等,并且 b) 浮点数不能为空。请说明您如何声明edittext1
和 2
您的编辑显示edittext
不是float
。如果文本为空导致崩溃,Float.parseFloat
也会抛出 NumberFormatException
。
【参考方案1】:
您应该检查 EditText 中文本的值,然后在您知道它们合适时使用这些值:
// Get the value of the text within the EditText
String enteredText1 = myEditText1.getText().toString();
String enteredText2 = myEditText2.getText().toString();
// Use String comparison to check if the text isn't empty
if(!enteredText1.equals("") && !enteredText2.equals("")
// Now you know the values aren't empty
float myVal = Float.parseFloat(enteredText1);
float myVal2 = Float.parseFloat(enteredText2);
// do something with the values ...
else
// do something when the values are empty ...
【讨论】:
【参考方案2】:EditText textA = (EditText) findViewById(R.id.text1);
EditText textB = (EditText) findViewById(R.id.text2);
String fieldText1 = textA.getText().toString();
String fieldText2 = textB.getText().toString();
if (fieldText1.matches("") || fieldText2.matches(""))
Toast.makeText(this, "Please, Fill in all fields", Toast.LENGTH_SHORT).show();
return;
【讨论】:
以上是关于如何检查edittext是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章
android中edittex焦点设置和弹不弹出输入法的问题
Android中EditTex焦点设置和弹不弹出输入法的问题
“DataBinding”如何检查 xml 中按钮的 onClick 是不是为 editText isEmpty 和 setError