はじめに
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();