-2

我已爲AlertDialog進行了自定義佈局,其中有EditText如何訪問放置在爲AlertDialog製作的自定義佈局中的EditText?

點擊一個按鈕我想檢查這個edittext是否爲空或填充,以便我可以進行進一步的操作。

這是自定義佈局AlertDialog XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_marginLeft="16dp" 
       android:layout_marginRight="16dp" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="8dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp"> 
     <EditText 
      android:id="@+id/id" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="type here"/> 
    </android.support.design.widget.TextInputLayout> 

</LinearLayout> 

這裏是我用java代碼做:

final AlertDialog.Builder builder = new AlertDialog.Builder(SignUpActivity.this); 
      builder.setTitle("Choose a unique username"); 
      builder.setView(R.layout.choose_unique_name_dialog); 
      builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        if (uniqueUserName.getText().toString().isEmpty()) { 
         Snackbar snackbar = Snackbar 
           .make(coordinatorLayout, "Please choose a unique username", Snackbar.LENGTH_SHORT); 
         snackbar.show(); 
        } else { 
         signingUpMethod(); 
        } 
       } 
      }); 
      AlertDialog dialog = builder.create(); 
      dialog.show(); 

所以,我想知道如何訪問此EditText從我的MainActivity

請讓我知道。

回答

1

充氣你設置你的alertDialog這樣

LayoutInflater inflater = this.getLayoutInflater(); 
View alertDialogView = inflater.inflate(R.layout.your_layout,null); 

訪問您的EditText這樣

EditText editText = (EditText) alertDialog.findViewById(R.id.id); 
+0

這對我有效,但問題是隻有當edittext爲空時才應該顯示的行爲也會在其中有文本時顯示。爲什麼這樣? –

+0

你的意思是說你只想在某些情況下顯示這個alertDialog? – SripadRaj

+0

請參閱編輯的問題...我正在點擊positivebutton之後進行檢查。如果edittext爲空,則顯示快餐欄,如果不是,則執行方法,但在任一情況下快餐欄都會顯示。 –

1

佈局試試這個代碼,

使其作爲publicstatic方法你可以從任何其他活動訪問

存儲edittext值在一些靜態變量和訪問另一個類。

+0

你覺得這有幫助嗎?@Hammad Nasir –

+0

我還沒試過。 –

+0

比你應該嘗試。這是訪問edittext值的簡單方法。 –

相關問題