2012-09-18 45 views
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; 
} 

在我的对话框中有两个按钮添加和取消。 我不知道在哪里点击按钮事件。

请帮帮我。 在此先感谢

回答

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; 
} 

没有测试,但应该工作:)

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; 
} 
+0

这其中也将工作,但我认为我们需要setOnClickListener的按钮,而不是setOnItemClickListener :) – Mark

+0

你能告诉我该怎么为传递根源在inflater? – Antarix

+0

你可以使用inflate(resource,null,false)。最后一个参数是必需的,因为当second为null时,这将不起作用。你的布局在这种情况下没有任何父布局,所以null应该没问题。 – Mark

相关问题