gpt4 book ai didi

android - Android 中的是/否警报对话框

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:39 24 4
gpt4 key购买 nike

我想在 android onBackPressed() 事件上显示一个警告对话框

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {

//@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
break;

case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
}
};

但在 onBackPressed() 事件中执行时出现错误

@Override
public void onBackPressed() {
super.onBackPressed();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();

}

错误:“com.java.mypkg 泄露了最初添加到此处的窗口 com.android.internal.policy.impl.PhoneWindow$DecorView@406c3798

我是不是漏掉了什么。请帮忙。

最佳答案

是的,不要根据之前用户的响应调用它。 super.onBackPressed();onStop 方法的 Activity 。而不是 onBackPressed(); 您可以使用 onKeyDown 来满足您的要求。如果您需要在按下后退按钮时打开一个 AlertDialog,您可以简单地尝试使用 KeyEvent

例如——

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub

switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
AlertDialog.Builder ab = new AlertDialog.Builder(AlertDialogExampleActivity.this);
ab.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();
break;
}

return super.onKeyDown(keyCode, event);
}

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
break;

case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
}
};

当您重写onKeyDown 方法时,它将使用您的KEYCODE_BACK 检测返回键。

希望对你有帮助。

关于android - Android 中的是/否警报对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715371/

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