0

我在用於創建自定義警報對話框的佈局文件中有一個按鈕。由於不相關的原因,我需要使用佈局中的按鈕,而不是使用對話框內置按鈕。「警報」對話框中使用的按鈕onClick內部視圖

它實際上非常相似的場景,這樣的問題:

Android:Button in AlertDialog

的問題是的onClick似乎從來沒有當我點擊警告對話框內的按鈕即可調用。

這裏是內部的OnCreate的代碼在我的活動相關的部分:

LayoutInflater dcvI = LayoutInflater.from(this); 
final View dcv = dcvI.inflate(R.layout.dialog,null); 
final Button sd_abort = (Button)dcv.findViewById(R.id.abort1); 
sd_abort.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

//I do work here 

}}); 

警告對話框代碼:

View exp = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog,null,false); 

new AlertDialog.Builder(MainActivity.this, R.style.CustomDialogTheme) 
.setTitle("Warning!!!") 
.setIcon(R.drawable.dhd_icon) 
.setView(exp) 
.show(); 

有誰知道我缺少的東西是保持按鈕和onclick監聽器連接?

感謝

+0

這兩個按鈕似乎沒有連接在所有。 – Neoh

+0

你能解釋一下嗎?我在偵聽器「abort1」中的按鈕位於佈局/ xml /視圖中,我用它作爲我的警報對話框的基礎。該按鈕顯示在對話框中。我想我的問題是,如果我沒有正確地做到這一點,我怎麼能聽到一個警報對話框中的按鈕? – Chris2222000

回答

1

您可以創建一個新的按鈕監聽器類

public class ButtonListener implements OnClickListener { 

    @Override 
    public void onClick(View v) { 
     // do your work 

    } 

} 

然後讓他們兩個的按鈕

ButtonListener buttonListener = new ButtonListener(); 
sd_abort.setOnClickListener(buttonListener); 

的(在對話框中)

View exp = LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog,null,false); 

Button dialogButton = (Button)exp.findViewById(R.id.abort1); 
dialogButton.setOnClickListener(buttonListener); 
new AlertDialog.Builder(MainActivity.this, R.style.CustomDialogTheme) 
.setTitle("Warning!!!") 
.setIcon(R.drawable.dhd_icon) 
.setView(exp) 
.show(); 
+0

這似乎奏效了。我不知道它爲什麼這樣做,但它確實如此。所以,謝謝你的幫助! – Chris2222000

相關問題