-2

EditTextがあるAlertDialogのカスタムレイアウトを作成しました。AlertDialog用に作成されたカスタムレイアウトに配置された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

このコードを試してみてください、あなたがこの

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

これは私にとってはうまくいったのですが、問題は、edittextが空のときだけ表示されるべき動作が、テキストがあるときにも表示されることです。なぜそうなのか? –

+0

あなたはこのalertDialogを何らかの状態でのみ表示したいと言っていますか? – SripadRaj

+0

編集した質問をご覧ください...私は、陽性ボタンをクリックした後にチェックをしています。 edittextが空であればsnackbarが表示され、そうでなければメソッドが実行されますが、どちらの条件でもsnackbarが表示されます。 –

1

のように、この

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

アクセスのようなあなたのalertDialogにあなたのEditTextを設定しているレイアウトを膨らませる、

publicstatic方法としてそれを作ります他のアクティビティからアクセスできます

edittextの値は、のstaticの値と別のクラスからのアクセスです。

+0

これは役に立ちましたか?@Hammad Nasir –

+0

私はそれを試していません。 –

+0

試してみるよりも。これは、edittext値にアクセスする簡単な方法です。 –

関連する問題