2010-12-05 61 views
1

我試圖檢查我的AlertDialog.Builder中EditText的值,以便防止用戶在EditText中不輸入任何內容。無法檢查AlertDialog.Builder中的EditText的值

由於某些原因,當我使用下面的代碼時,它永遠不會進入if (mEditText.getText() == null || test == "")語句,它總是執行else語句。

任何想法?謝謝你們。

@Override 
    protected Dialog onCreateDialog(int id) { 

     LayoutInflater factory = LayoutInflater.from(mContext); 
     final View textEntryView = factory.inflate(R.layout.file_save_dialog, null); 
     mEditText = (EditText) textEntryView.findViewById(R.id.file_name_edit); 
     final Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); 

     return new AlertDialog.Builder(mContext) 
      .setIcon(android.R.drawable.ic_menu_save) 
      .setTitle(R.string.file_name_title) 
      .setView(textEntryView) 
      .setPositiveButton(R.string.dialog_ok, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        String test = mEditText.getText().toString(); 

        //This if never works...it always hits the else statement 
        if (mEditText.getText() == null || test == "") { 
         mEditText.startAnimation(shake); 
        } 
        else { 
         finish(); 
        } 

       } 
      }) 
      .setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        finish(); 
       } 
      }) 
      .create(); 
    } 

回答

2

做它在Android方式:

if (TextUtils.isEmpty(mEditText.getText()) { 
    mEditText.startAnimation(shake); 
} else { 
    finish(); 
} 
1

把它像這樣

if (test == null || test.length() <= 0) { 
    mEditText.startAnimation(shake); 
} 
else { 
    finish(); 
} 
+0

感謝。檢查長度是否奏效,但我對爲什麼我的原始代碼不起作用感到困惑。 – user432209 2010-12-05 16:24:32

1

如果你想比較兩個字符串值,使用方法equals()

例如:

stringOne.equals(stringTwo);