点击AlertDialog.PossitiveButton

时间:2015-11-19 11:35:09

标签: android android-edittext android-dialog

我的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. 这3个陈述返回false,所以我不知道应该比较et.getText().toString()

    问题1的解决方案是否没有在对话框视图中添加自定义按钮?

    问题2的任何想法?

4 个答案:

答案 0 :(得分:2)

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

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

您可以阅读Java String Compare Example

  

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

答案 1 :(得分:0)

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

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

}

要在单击肯定按钮时不关闭对话框,您需要进行自定义Dialog已有很多SO问题/答案。请参阅here

答案 2 :(得分:0)

试试这个

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

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

答案 3 :(得分:0)

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

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