Android Toast消息要求用户填写空白;编辑文本“;领域 当点击一个按钮告诉用户填写空白字段时,我试图得到一个消息。当前,如果该字段为空,则会崩溃/强制关闭应用程序。我尝试执行以下代码,但没有成功。最初我没有if/else,我只是运行计算器();方法和以下imm代码

Android Toast消息要求用户填写空白;编辑文本“;领域 当点击一个按钮告诉用户填写空白字段时,我试图得到一个消息。当前,如果该字段为空,则会崩溃/强制关闭应用程序。我尝试执行以下代码,但没有成功。最初我没有if/else,我只是运行计算器();方法和以下imm代码,android,android-edittext,toast,Android,Android 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

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

  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)

只是不知道如何用我想要的方式来表达。

你实际上想检查EditText的内容是空的还是空字符串

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

if(TextUtils.isEmpty(text.toString())) {
    // show toast
}
这条线应该是这样的:

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

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

您实际上想要检查EditText的内容是null还是空字符串

这条线应该是这样的:

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

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

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

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

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

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

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

if (test.equals("")) {
//...
((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。

((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。

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

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

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

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

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

if(et1.getText().length() == 0){
    //Display toast here
} else{
    //Your code
}
使用此代码

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

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