を使用してレイアウトからいくつかのボタンとグリッドビューを持つ AlertDialog を作成し、レイアウトにパックしてオブジェクトを返す Activity クラスでLayoutInflater
オーバーライドしました。onCreateDialog()
Dialog
そしてonCreate()
、アクティビティ クラスのメソッドで、showDialog(id)
id が特定のダイアログに関連付けられている定数である場所を使用してダイアログを表示します。
ここで、表示されている AlertDialog にあるウィジェットにクリック イベントをバインドします。私は次のようにします:
showDialog(DLG_INPUT_FORM);
inputform = new Dialog(MyActivity.this);
inputform.setContentView(R.layout.input_form);
edtName = (EditView) inputform.findViewById(R.id.edtName);
btnCheck = (Button) inputform.findViewById(R.id.btnCheck);
txtStatus = (TextView) inputform.findViewById(R.id.txtStatus);
//This event is never triggered.
btnCheck.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String name = edtName.getText().toString();
//Do Something with the "name"
txtStatus.setText("Available");
}
});
これは例外をスローしませんが、ボタンをクリックしても何もしません。実際、イベントはまったくトリガーされません。
コードのどこが間違っていますか?
アップデート:
この問題はこれに似ています。ダイアログのウィジェットへの参照も取得してbtnCheck
いtxtStatus
ますが、クリックイベントが機能しないという問題があります。