2012-09-18 83 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

相關問題