在警报对话框中使用的按钮onClick内部视图

时间:2013-07-05 16:12:35

标签: android android-view android-alertdialog onclicklistener

我在布局文件中有一个按钮,用于创建自定义警报对话框。出于无关的原因,我需要使用布局内的按钮而不是使用对话框内置按钮。

它实际上与这个问题非常相似:

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监听器连接的内容?

由于

1 个答案:

答案 0 :(得分: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();