单击 AlertDialog.PossitiveButton 时什么都不做

Do NOTHING when clicking AlertDialog.PossitiveButton

我有一个 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 是空的,我的 objective 什么都不做,什么都没有,我什么意思都没有。但是有两个问题:

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

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

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

这 3 个陈述 return 错误,所以我不知道我应该比较什么 et.getText().toString()

在不向对话框视图添加自定义按钮的情况下,是否有解决问题 1 的方法?

对问题 2 有什么想法吗?

请使用equals("")代替==

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

你可以阅读Java String Compare Example

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

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

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

}

要在单击肯定按钮时不关闭对话框,您需要自定义 Dialog 已经有很多 SO questions/answers 了。参见 here

试试这个

String gettext = et.getText().toString();

if(!gettext.contentEquals("")){
       //do funny things
}

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

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