【问题标题】:Do NOTHING when clicking AlertDialog.PossitiveButton单击 AlertDialog.PossitiveButton 时不执行任何操作
【发布时间】:2015-11-20 13:42:27
【问题描述】:

我有一个AlertDialog,里面有一个EditText

final EditText et = new EditText(getActivity());
AlertDialog.Builder myDialog = new AlertDialog.Builder(getActivity());
myDialog.setTitle("My Title").setView(et);
myDialog.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        if(et.getText().toString() != ""){
            //Do funny things
        }
    }
});
myDialog.setNegativeButton("Ok",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    }
});

如果EditText 为空,我的目标是什么都不做,我什么都没有。但是有两个问题:

  1. 点击setPositiveButton时,即使onClick方法为空,对话框也会关闭。

  2. 如果EditText 为空,我不知道我应该在 if 条件中匹配哪个 ASCII 字符。我的意思是:

    vNombre.getText().toString() == null;
    vNombre.getText().toString() == " ";
    vNombre.getText().toString() == "";
    

这 3 个语句返回 false,所以我不知道我应该与什么比较 et.getText().toString()

如果不向对话框视图添加自定义按钮,有没有解决问题1的方法?

对问题 2 有什么想法吗?

【问题讨论】:

标签: android android-edittext android-dialog


【解决方案1】:

请使用equals("") 而不是==

 if(!et.getText().toString().equals("")
{
                   //Do funny things
  }

您可以阅读Java String Compare Example

What's the difference between ".equals" and "=="?

【讨论】:

    【解决方案2】:

    您应该尝试使用下面的代码来检查String 是否为空,而不是上面的代码。

    if  (!TextUtils.isEmpty(et.getText().toString())) {
    
    }
    

    要在单击肯定按钮时不关闭对话框,您需要自定义Dialog,已经有很多关于此的问题/答案。见here

    【讨论】:

      【解决方案3】:

      试试这个

      String gettext = et.getText().toString();
      
      if(!gettext.contentEquals("")){
             //do funny things
      }
      

      【讨论】:

        【解决方案4】:

        始终检查字符串的长度以检查是否为空。

        int length = ed.getText().toString().trim().length();
        if(length > 0)
        {
           //do your work here
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-03-23
          • 1970-01-01
          • 2012-04-16
          • 2021-09-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-26
          相关资源
          最近更新 更多