LoginSignup
2
1

More than 5 years have passed since last update.

Dialog内のViewを関連付ける

Posted at

はじめに

Dialog内のViewを関連付けて通常のView同様に使いたいときに毎回調べるの面倒なのでメモします。
やってることはDialog用のLayoutをViewに読み込んで表示させてるだけです。

Layoutの読み込み

LayoutInflaterを使って読み込みます

//Dialogレイアウト取得用のView
View inputView;

//Dialog用レイアウトの読み込み
LayoutInflater factory = LayoutInflater.from(this);
inputView = factory.inflate(R.layout.layout_dialog, null);

関連付け

findViewByIdの前にさっきLayoutを読み込んだViewをつけてやるだけです。

//関連付け
dialogText=(TextView)inputView.findViewById(R.id.dialog_text);

Dialogに反映

.setViewで表示するViewをセットします。

//Dialog生成
alertDlg = new AlertDialog.Builder(TagEditActivity.this)
                    .setView(inputView)
                    .setPositiveButton(
                            "OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    // OK ボタンクリック処理
                                }
                            })
                    .create();

おしまい!

これだけで関連付け終わりなので、どこからでもViewの中身を操作できます。
煮るなり焼くなり好きにしてください。

サンプルコード

//Dialogレイアウト取得用のView
View inputView;
//Dialog内のTextView
TextView dialogText;
//Dialog
AlertDialog alertDlg;

//Dialog用レイアウトの読み込み
LayoutInflater factory = LayoutInflater.from(this);
inputView = factory.inflate(R.layout.layout_dialog, null);
//関連付け
dialogText=(TextView)inputView.findViewById(R.id.dialog_text);
//Dialog生成
alertDlg = new AlertDialog.Builder(TagEditActivity.this)
                    .setView(inputView)
                    .setPositiveButton(
                            "OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int which) {
                                    // OK ボタンクリック処理
                                }
                            })
                    .create();
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1