gpt4 book ai didi

java - 自定义对话框按钮不调用它们的 OnClick 方法

转载 作者:行者123 更新时间:2023-11-29 04:51:51 24 4
gpt4 key购买 nike

我有一个名为 dialog_main.xml 的自定义对话框布局

在那个布局里面有两个按钮。在我的 MainActivity 中,我定义了两个 OnClickListeners 并将它们分配给我的两个按钮。然而,当我的 MainActivity 启动并出现我的对话框时,点击我的按钮没有任何反应。

此外,作为旁注,dialog.setCancelable(false); 似乎也不起作用。如果我没记错的话,那应该可以防止在对话框外单击时关闭对话框?

以下是我的MainActivity:

        dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.dialog_main);
dialog.setTitle("Checklist");
dialog.setCancelable(false);
dialog.show();

final LayoutInflater factory = getLayoutInflater();
final View dialogButtonsView = factory.inflate(R.layout.dialog_main, null);

Button newChecklistButton = (Button) dialogButtonsView.findViewById(R.id.new_checklist_button);
Button resumeChecklistButton = (Button) dialogButtonsView.findViewById(R.id.resume_checklist_button);

newChecklistButton.setOnClickListener(newChecklistOnClickListener);
resumeChecklistButton.setOnClickListener(resumeChecklistOnClickListener);




private Button.OnClickListener newChecklistOnClickListener = new Button.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("called");
dialog.dismiss();
}
};

private Button.OnClickListener resumeChecklistOnClickListener = new Button.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println("called");
dialog.dismiss();
}
};

最佳答案

出现问题是因为使用 dialogBu​​ttonsView View 对象将 Button 单击监听器添加到 Button,但它没有作为 Dialog View 传递给 setContentView 方法。更改:

dialog.setContentView(R.layout.dialog_main);

dialog.setContentView(dialogButtonsView);

编辑:因为创建Dialog对象,不需要再在setContentView中传入的inflate来访问View,只需使用dialog对象调用 findViewById 方法如下:

Button newChecklistButton =(Button)dialog.findViewById(R.id.new_checklist_button);

关于java - 自定义对话框按钮不调用它们的 OnClick 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35170035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com