gpt4 book ai didi

java - 如何在android中显示警报时检测搜索按钮

转载 作者:行者123 更新时间:2023-11-29 09:20:23 26 4
gpt4 key购买 nike

嗨 stackoverflow 的 friend 们

我最近遇到了一个问题,即当屏幕上显示警报时如何禁用 android 中的全局搜索按钮。我不想通过使用搜索按钮来使警报框消失。我需要用户必须单击警报框按钮并以这种方式消失。所以我想在显示警报框时禁用搜索按钮。但是我可以使用 setCancable(false) 禁用后退按钮。我该如何解决这个问题?

提前致谢。

最佳答案

因此,您的 Intent 是提供不可取消的警报。建议设置 OnDismissListener 并再次显示警报。从视觉角度来看不是很好(警报关闭并再次打开)。下面是一些如何实现这种不可取消警报的明显示例(代码在 Acctivity 类中):

/** reference to our alert */
private AlertDialog alert = null;
/** to indicate if alert dismissed by key */
private boolean alertKeyPressed = false;

@Override
protected void onResume() {

// Say, we need to show alert when activity resumed

if(true/*provide condition to show alert*/) {

showAlert();
}
}

/**
* Show non dismissable alert
*/
private void showAlert() {
if(null == this.alert) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setCancelable(false);
builder.setTitle(R.string.str_alert_title);
builder.setMessage(R.string.str_alert_text);
builder.setIcon(android.R.drawable.ic_dialog_alert);

builder.setNeutralButton("OK", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

YourActivity.this.alertKeyPressed = true;

dialog.dismiss();
}
});

this.alert = builder.create();

this.alert.setOwnerActivity(this);
this.alert.show();

this.alert.setOnDismissListener(new DialogInterface.OnDismissListener() {

@Override
public void onDismiss(DialogInterface dialog) {


// dialog is not allowed to be dismissed, so show it again
YourActivity.this.alert = null;

if(!YourActivity.this.alertKeyPressed) {
showAlert();
}
}
});
}
}

但是,我不认为给用户留下这样的警告是正确的方式,有时在评估限制等情况下可能需要它。

关于java - 如何在android中显示警报时检测搜索按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870547/

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