Android Webview后退按一下返回,双击退出
大家好,我正试图使网络视图上的后退按钮在按下一次时返回,并在按下两次时以警报结束活动 问题是,当我尝试双击时,它会像我单击了一个一样运行。。他不期望双击的运行时间 谢谢 代码Android Webview后退按一下返回,双击退出,android,webview,Android,Webview,大家好,我正试图使网络视图上的后退按钮在按下一次时返回,并在按下两次时以警报结束活动 问题是,当我尝试双击时,它会像我单击了一个一样运行。。他不期望双击的运行时间 谢谢 代码 试着做这个,看看这对你是否有用 boolean doubleBackToExitPressedOnce; @Override public void onBackPressed() { Log.i(TAG, "onBackPressed"); if (doubleBackToExitPressedOnc
试着做这个,看看这对你是否有用
boolean doubleBackToExitPressedOnce;
@Override
public void onBackPressed() {
Log.i(TAG, "onBackPressed");
if (doubleBackToExitPressedOnce) {
Log.i(TAG, "double click");
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("Esmalteria Cariúcha")
.setMessage("Sair do Sistema?")
.setPositiveButton("Sim",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
finish();
}
}).setNegativeButton("Não", null).show();
return;
} else {
Log.i(TAG, "single click");
if (webview.canGoBack()) {
Log.i(TAG, "canGoBack");
webview.goBack();
} else {
Log.i(TAG, "nothing to canGoBack");
}
}
this.doubleBackToExitPressedOnce = true;
if (getApplicationContext() == null) {
return;
} else {
Toast.makeText(this, "Please click BACK again to exit",
Toast.LENGTH_SHORT).show();
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
试着做这个,看看这对你是否有用
boolean doubleBackToExitPressedOnce;
@Override
public void onBackPressed() {
Log.i(TAG, "onBackPressed");
if (doubleBackToExitPressedOnce) {
Log.i(TAG, "double click");
new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher)
.setTitle("Esmalteria Cariúcha")
.setMessage("Sair do Sistema?")
.setPositiveButton("Sim",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
finish();
}
}).setNegativeButton("Não", null).show();
return;
} else {
Log.i(TAG, "single click");
if (webview.canGoBack()) {
Log.i(TAG, "canGoBack");
webview.goBack();
} else {
Log.i(TAG, "nothing to canGoBack");
}
}
this.doubleBackToExitPressedOnce = true;
if (getApplicationContext() == null) {
return;
} else {
Toast.makeText(this, "Please click BACK again to exit",
Toast.LENGTH_SHORT).show();
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
试试这个
private WebView view;
private String urlhome = "http://localhost/Default.aspx";
private static String currenturl = "";
private Boolean close_app = false;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (view.canGoBack()) {
String url = view.getUrl();
if (url.equalsIgnoreCase(urlhome)) {
if (close_app) {
// pressed twice
finish();
} else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
close_app = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
close_app = false;
}
}, 3 * 1000);
return true;
}
} else {
view.goBack(); //method goback()
return true;
}
} else {
String url = view.getUrl();
if (url.equalsIgnoreCase(urlhome)) {
if (close_app) {
// pressed twice
finish();
} else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
close_app = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
close_app = false;
}
}, 3 * 1000);
return true;
}
}else {
view.loadUrl(urlhome);
currenturl = urlhome;
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
试试这个
private WebView view;
private String urlhome = "http://localhost/Default.aspx";
private static String currenturl = "";
private Boolean close_app = false;
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (view.canGoBack()) {
String url = view.getUrl();
if (url.equalsIgnoreCase(urlhome)) {
if (close_app) {
// pressed twice
finish();
} else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
close_app = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
close_app = false;
}
}, 3 * 1000);
return true;
}
} else {
view.goBack(); //method goback()
return true;
}
} else {
String url = view.getUrl();
if (url.equalsIgnoreCase(urlhome)) {
if (close_app) {
// pressed twice
finish();
} else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
close_app = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
close_app = false;
}
}, 3 * 1000);
return true;
}
}else {
view.loadUrl(urlhome);
currenturl = urlhome;
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
几乎!我真的需要双击工作,即使WebVIEW可以回去,所以你可以离开活动中的导航。谢谢你的快速回复很好!!我对你感激不尽!很有魅力!!很乐意帮忙,你:)差不多了!我真的需要双击工作,即使WebVIEW可以回去,所以你可以离开活动中的导航。谢谢你的快速回复很好!!我对你感激不尽!很有魅力!!很乐意帮忙,你:)一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。请添加一些说明,让其他人理解。一个好的答案将始终解释所做的事情以及为什么这样做,不仅是为了OP,而且是为了未来的访客。请添加一些说明以使其他人理解。