0

カスタムダイアログにあるボタンクリックのイベントを呼び出そうとしています。これが私のカスタムダイアログコードです

protected Dialog onCreateDialog(int id) {
    Dialog dialog;
    switch(id) {
        case MY_DIALOG:
            dialog= getInstanceMyDialog();
            break;
        default:
            dialog = null;
    }
    return dialog;
}

private Dialog getInstanceMyDialog() {
    final Dialog bookMarkDialog= new Dialog(this,R.style.BookmarkDialogNoTitle);
    bookMarkDialog.setContentView(R.layout.bookmark_dialog);
    return bookMarkDialog;
}

私のダイアログには、[追加] と [キャンセル] の 2 つのボタンがあります。ボタンクリックのイベントを発生させる場所がわかりません。

私を助けてください。前もって感謝します

4

2 に答える 2

1
private Dialog getInstanceMyDialog() {
  final Dialog bookMarkDialog= new Dialog(this,R.style.BookmarkDialogNoTitle);
  bookMarkDialog.setContentView(R.layout.bookmark_dialog);

  Button addButton = (Button)bookMarkDialog.findViewById(R.id.dialogAddButton);
  addButton.setOnClickListener(new OnClick .........)
  ......... same for cancel.

  return bookMarkDialog;
}

テストしませんでしたが、動作するはずです:)

于 2012-09-18T08:19:09.787 に答える
0

ビューを膨らませて、ボタンのリスナーを設定できます。

private Dialog getInstanceMyDialog() {
    final Dialog bookMarkDialog= new Dialog(this,R.style.BookmarkDialogNoTitle);
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    View contentView = inflater.inflate(R.layout.bookmark_dialog, root);
    /// set the listener for your buttons.
    Button button1 = (Button) contentView.findViewById(R.id.button1);
    button1.setOnItemClickListener(this);

    bookMarkDialog.setContentView(contentView);
    return bookMarkDialog;
}
于 2012-09-18T08:18:48.670 に答える