当前位置: 首页 > 知识库问答 >
问题:

当对话框显示[重复]时,如何使只有AlertDialog的按钮可单击

金昂熙
2023-03-14

我的Android应用程序上有一个AlertDialog。当我显示到AlertDialog时,我只想在用户单击“Okay”按钮时禁用。因为当用户点击“Okay”按钮时,我会重置屏幕。

我的问题是当我点击AlertDialog屏幕外的某个地方时,对话框正在关闭,但我无法清理屏幕。

这是我的代码;

AlertDialog.Builder builder = new AlertDialog.Builder(GameOnePlayer.this, R.style.AlertDialogTheme);
//builder.setCancelable(true);
View view = LayoutInflater.from(GameOnePlayer.this).inflate(
        R.layout.layout_winner_dialog,
        (ConstraintLayout)findViewById(R.id.layoutAlertDialogContainer)
);
builder.setView(view);

final AlertDialog alertDialog = builder.create();
//alertDialog.setCanceledOnTouchOutside(false);

view.findViewById(R.id.buttonAlertDialog).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        hideSystemUI();
        clearScreen();
        alertDialog.dismiss();
    }
});

if(alertDialog.getWindow() != null){
    alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));
}

alertDialog.show();

<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
    <item name="android:windowCloseOnTouchOutside">false</item>
</style>

builder.setCancelable(false);
alertDialog.setCancelable(false);
alertDialog.setCanceledOnTouchOutside(false);

非常感谢你们所有的帮助者。

共有1个答案

解鸿运
2023-03-14
  alertDialog.setCancelable(false);
  alertDialog.setCanceledOnTouchOutside(false);
 类似资料:
  • 我有一个按钮(CustomDilaog活动),当点击显示自定义对话框和密码编辑文本,确定按钮和取消按钮时,如果你输入正确的密码,它会打开另一个活动(文本活动),直到现在一切正常, 我有两个部分的问题。 第一部分:当我在(文本活动)并按后退按钮返回(CustomDilaog活动)时,仍然对话框显示在它上面,如何让它关闭 第二部分:对话框启动后,如果我不写密码,只需单击“确定”按钮,edittext为

  • 我有一个弹出窗口,里面有一个输入。弹出窗口的创建如下所示: 这一切都很有效,可以通过输入。当用户点击android手机上的后退按钮时,问题就出现了。后退按钮关闭弹出窗口。这不应该发生,因为用户的意图是在与弹出窗口进行交互之前无法继续。 现在,我们当然可以将弹出视图的焦点设置为,以禁止通过后退按钮解除:

  • 问题内容: 我有一个EditText用于输入的对话框。当我单击对话框上的“是”按钮时,它将验证输入,然后关闭对话框。但是,如果输入错误,我希望保留在同一对话框中。每次无论输入什么,当我单击“否”按钮时,都应自动关闭对话框。如何禁用此功能?顺便说一句,我在对话框上的按钮上使用了PositiveButton和NegativeButton。 问题答案: 编辑:这仅在API 8+上有效,如某些注释所述。

  • 我是个新手。如何只在React中单击按钮后才呈现组件? 我还想知道如何在点击按钮时刷新组件而不刷新整个页面。

  • 我有以下问题:我有沙箱中的代码,我想显示一个按钮,如果复选框被选中,最大数量大于1。最大数量条件不是问题,而是复选框的问题。我不知道如何获得特定复选框的“选中”值。我认为我不能对索引做任何事情,因为索引值在映射optionModules时被多次使用。预先感谢你的帮助。沙盒链接:https://codesandbox.io/s/nostalgic-germain-e18wh

  • 继承自Popup 对话框是一个原生对话弹出框,显示一个消息与最多三个按钮。关闭时会被自动释放。 使用“const {AlertDialog} = require('tabris');”引入该类。 属性 buttons Type: {ok?: string, cancel?: string, neutral?: string} 含有按钮文本内容的对象。分别是这三种按钮:ok, cancel和neut