我在布局文件中有一个按钮,用于创建自定义警报对话框。出于无关的原因,我需要使用布局内的按钮而不是使用对话框内置按钮。
它实际上与这个问题非常相似:
问题是当点击警告对话框内的按钮时,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 :(得分: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();