带有后退button的Android Webview,如果其他的

漠视。 我正在打开安装了错误的应用程序。 它奇妙地工作。 🙂

我有我的webview中正确的后退button,但我想知道的东西。 如何使webview回退到不能再退出,而不是退出程序,而是打开一个对话框,询问用户是否确定不会退出。 这是我的代码。
感谢您抽出宝贵的时间。

.java文件

package com.vtd.whatthe; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.Toast; import android.webkit.WebView; import android.webkit.WebViewClient; public class WhatThe extends Activity { private WebView webview; /** Called when the activity is first created. */ public void onBackPressed (){ if (webview.isFocused() && webview.canGoBack()) { webview.goBack(); } else { openMyDialog(null); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); webview = (WebView) findViewById(R.id.webview); webview.setWebViewClient(new HelloWebViewClient()); webview.getSettings().setJavaScriptEnabled(true); webview.setInitialScale(50); webview.getSettings().setUseWideViewPort(true); webview.loadUrl("http://test2.com/"); } private class HelloWebViewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } public void openMyDialog(View view) { showDialog(10); } @Override protected Dialog onCreateDialog(int id) { switch (id) { case 10: // Create our AlertDialog Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you sure you want to exit? You have unlimited guesses!") .setCancelable(true) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // Ends the activity WhatThe.this.finish(); } }) .setNegativeButton("Keep Guessing!", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "Good Luck!", Toast.LENGTH_SHORT).show(); } }); return builder.create(); } return super.onCreateDialog(id); } } 

Solutions Collecting From Web of "带有后退button的Android Webview,如果其他的"

下面的代码为我工作

 public void onBackPressed (){ if (webview.isFocused() && webview.canGoBack()) { webview.goBack(); } else { super.onBackPressed(); finish(); } } 

尝试这个

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN) { switch(keyCode) { case KeyEvent.KEYCODE_BACK: if(webView.canGoBack()) { myWebView.goBack(); } else { finish(); } return true; } } return super.onKeyDown(keyCode, event); } 

尝试下面的代码片段

 public void back() { if (history.size() > 0) { history.remove(history.size() - 1); if (history.size() <= 0) { finish(); } else { setContentView(history.get(history.size() - 1)); } } else { finish(); } } @Override public void onBackPressed() { TopNewsGroup.group.back(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { TopNewsGroup.group.back(); return true; } return super.onKeyDown(keyCode, event); } 

这是你需要的代码。

 public void showAlertDialog(Context context, String title, String message, Boolean status) { AlertDialog.Builder adb = new AlertDialog.Builder(this); adb.setTitle(R.string.alerta); adb.setMessage(getResources().getString(R.string.mserror)); adb.setIcon((status) ? R.drawable.close : R.drawable.alerta); adb.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); adb.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); adb.show(); } 

接着

 public void onBackPressed(){ if (webView.isFocused() && webView.canGoBack()) { webView.goBack(); } else { showAlertDialog(Web.this, "","", false); } }