我只是想检查EditText是否为空......
我有:
EditText a, b, c;
double A, B, C;
还有:
a = (EditText) findViewById(R.id.a);
b = (EditText) findViewById(R.id.b);
c = (EditText) findViewById(R.id.c);
当然:
if (a.getText().length() == 0)
Toast.makeText(this, "Ax^2 Cannot Be Empty!", Toast.LENGTH_LONG).show();
else {
A = Double.parseDouble(a.getText().toString());
if (b.getText().length() == 0)
B = 0;
else
B = Double.parseDouble(b.getText().toString());
if (c.getText().length() == 0)
C = 0;
else
C = Double.parseDouble(c.getText().toString());
Intent act = new Intent(this, PopupResult.class);
act.putExtra("A", A);
act.putExtra("B", B);
act.putExtra("C", C);
startActivity(act);
}
这真的很奇怪,因为第一个if
(a
的那个)工作。
请帮忙!
如果第一个EditText
为空,那么有一个Toast,就像我想要的那样。但如果第二个或第三个EditText
为空,则应用程序崩溃
如果字段为空,我想将B
和C
设置为0.
答案 0 :(得分:3)
您应该使用toString()
功能。另外,要避免两端的空格,请使用b.getText().toString().trim()
if (b.getText().toString().length() <= 0)
B = 0;
else
B = Double.parseDouble(b.getText().toString());
答案 1 :(得分:1)
尝试以下代码检查空EditText
if(TextUtils.isEmpty(b.getText().toString.trim())
{
B = 0;
}else
{
B = Double.parseDouble(b.getText().toString());
}
if (TextUtils.isEmpty(c.getText().toString.trim())
C = 0;
else
C = Double.parseDouble(c.getText().toString());
答案 2 :(得分:1)
EditText .getText()
方法返回可编辑对象,尝试使用getText().toString().length()
答案 3 :(得分:0)
使用以下代码
if(a.getText().toString().equalsIgnoreCase(""){
//your comment
}
if(b.getText().toString().equalsIgnoreCase(""){
//your comment
}
if(c.getText().toString().equalsIgnoreCase(""){
//your comment
}
答案 4 :(得分:0)
您可以使用
if(TextUtils.isEmpty(b.getText())
public static boolean isEmpty (CharSequence str)
Added in API level 1
Returns true if the string is null or 0-length.
Parameters
str the string to be examined
Returns
true if str is null or zero length
所以你可以这样做
if (TextUtils.isEmpty(a.getText().toString()) // return true if length is 0 or null
{
Toast.makeText(this, "Ax^2 Cannot Be Empty!", Toast.LENGTH_LONG).show();
}
else
{
A = Double.parseDouble(a.getText().toString());
}