我有一个对话框可以检查互联网是否打开。如果它没有打开,我会显示一个弹出窗口,让您可以选择打开数据或退出应用程序。如果您选择打开数据,它将带您进入设置页面以打开数据。这是问题所在:当您从设置页面按回时,对话框仍然存在,它不会被关闭。这是代码:
public void calldialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(
"You need to enable an internet connection in order to use this Chirps:")
.setCancelable(true)
.setPositiveButton("Turn on Data",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Intent newintent = new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS);
newintent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(newintent);
dialog.dismiss();
}
})
.setNegativeButton("Exit",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
Main.this.finish();
}
});
builder.show();
}
当我只有一个选项时,对话框运行正常。但是一旦我添加第二个选项,它就会导致按钮显示两次。在 oncreate 和 onresume 中都调用了包含 calldialog() 的互联网检查功能,这可能是问题的一部分。
最佳答案
在 dialog.dismiss() 之前调用 startActivity()。这将控制新 Activity 。
关于Android:为什么这个对话框弹出两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181373/