要求用户填写空白“EditText”字段的Toast消息

时间:2011-05-17 20:57:46

标签: android android-edittext toast

我正在尝试在单击按钮时显示一条消息,告诉用户填写空白字段。目前,如果该字段为空,则崩溃/强制关闭应用程序。我尝试执行以下代码并且没有成功。原来我没有if / else,我只是运行计算器();方法和以下的imm代码。

有人能指出我正确的方向吗?

  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);
     }
  }

我很确定这是错误的代码:

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

根本不知道如何按照我想要的方式说出来。

6 个答案:

答案 0 :(得分:5)

尝试检查EditText小部件中文本的长度

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

答案 1 :(得分:2)

使用此代码。

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

有问题的行应该是这样的:

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

当然,您可能希望将该语句分解为更多行,以使其更具可读性!

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

((EditText)findViewById(R.id.amount1)== null只是引用了ID为amount1的EditText,它没有检查EditText是否有有效的条目。

要查看EditText是否包含文本,您可以通过EditText#getText().toString()

获取它所拥有的字符串

要使其工作,首先将对EditText的引用存储在var中,然后对字符串执行检查:

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

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

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