2011-05-17 96 views
1

我试图在单击按钮以指示用户填写空白字段时显示消息。目前,如果该字段为空,则会崩溃/强制关闭应用程序。我试图做下面的代码,并没有成功。原来我没有那里的if/else,我只是跑了计算器();方法和下面的imm代码。要求用户填写空白的“EditText”字段的Toast消息

有人可以指引我进入正确的方向吗?

public void onClick(View v) 
    { 
    if ((EditText)findViewById(R.id.amount1)== null) 
    { 
      Context context = getApplicationContext(); 
      CharSequence text = "Enter a number"; 
      int duration = Toast.LENGTH_SHORT; 

      Toast toast = Toast.makeText(context, text, duration); 
      toast.show(); 
    } 
    else 
    { 
     calculator(); 
     InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
     imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
    } 
    } 

Im相当肯定,这是不好的代码:

if ((EditText)findViewById(R.id.amount1)== null) 

只是不知道如何字是我想要的方式。

回答

5

尝试查看文本的长度在小部件的EditText

EditText e = (EditText)findViewById(R.id.amount1)); 
if(e.getText().length == 0){ 
//Show Toast 
}else{ 
//continue your code 
} 
+0

太棒了,这工作完美。感谢大家的投入! – Xarddrax 2011-05-17 21:50:52

0
EditText text = (EditText)findViewById(R.id.amount1); 

if(TextUtils.isEmpty(text.toString())) { 
    // show toast 
} 
0

您确实想检查EditText的内容是否为空或空字符串。

在这个行应该是这个样子:

if("".equals(((EditText)findViewById(R.id.amount1)).getText().toString())) 

当然,你可能会想打破这种说法成多行,使其多一点可读!

0

即使该字段为空,edittext也不为空。用途:

EditText editText = (EditText)findViewById(R.id.amount1); 
String text = new String(editText.getText()); 

if (test.equals("")) { 
//... 
0

((EditText)findViewById(R.id.amount1)== null是刚开id为amount1到的EditText参考,不检查,看看是否有的EditText有效的条目。

要看到,如果EditText上有文字,你可以得到的字符串,通过EditText#getText().toString()

持有由为了使这项工作,首先参考的EditText存储在一个变种,然后在字符串执行你的检查:

EditText et = (EditText)findViewById(R.id.amount1); 
String amount1 = et.getText().toString(); 

if (amount1.equals("")) { 
    // Do your stuff here 
} 

我使用局部变量,只是假设你想让字符串有内容。您可能需要执行其他检查来处理所有情况(如格式错误的输入)。其中一些可以通过在EditText上设置inputType来减少。例如,如果您只想处理十进制数字,则可以将其设置为numberDecimal。

2

使用此代码。

EditText et = (EditText)findViewById(R.id.amount1)); 

if(et1.getText().length() == 0){ 
    //Display toast here 
} else{ 
    //Your code 
}