我有这样的代码:
public void onBackPressed(){
final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("Are you sure you want to exit ?");
builder.setCancelable(true);
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
});
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
finish();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
}如果按钮被按下一次,我如何在webview中返回,如果按下两次,如何显示对话框?
发布于 2018-04-13 00:24:49
尝试如下所示:
boolean backPressed = false;
@Override
public void onBackPressed() {
if (backPressed) {
super.onBackPressed();
//Show your Dialog here
}
this.backPressed = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
backPressed = false;
}
}, /* Delay between successive presses here*/);
} 发布于 2018-04-13 00:25:39
只需使用一个布尔值就可以知道对话框当前是否显示。这是最简单、最干净的方法。
发布于 2018-04-13 00:34:33
既然你提到了一个WebView,你可以考虑这样做:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
// show dialog as before
}
} 通过这种方式,您可以随时返回when视图,然后在到达第一个页面时显示对话框。
https://stackoverflow.com/questions/49801482
复制相似问题