【问题标题】:#Project - WebView goBack() Return#Project - WebView goBack() 返回
【发布时间】:2015-03-28 09:59:03
【问题描述】:

在 stackoverflow 上搜索并测试所有代码后,我的 Return goBack();不工作。

我做一个 WebView, - 网址工作 - 缩放工作

但我需要重新加载最后一页,所以这是我添加的代码:

MainActivity.java

package org.sbynight.app; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.webkit.WebView; import android.webkit.WebViewClient; import android.webkit.WebChromeClient; import android.view.KeyEvent; public class MainActivity extends Activity { WebView view; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView view = (WebView) this.findViewById(R.id.webView1); //URL du website - DO NOT CHANGE IT String url = "http://www.mydomaine.com/"; //loads the WebView completely zoomed out view.getSettings().setSupportZoom(true); view.getSettings().setBuiltInZoomControls(true); //loads WebView Client view.getSettings().setLoadWithOverviewMode(true); view.setWebViewClient(new WebViewClient()); view.setWebChromeClient(new WebChromeClient()); view.getSettings().setAppCacheEnabled(false); //loads URL view.loadUrl(url); } //loads RETURN URL on lastpage @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && this.view.canGoBack()) { this.view.goBack(); return true; } else { new AlertDialog.Builder(this) .setIcon(android.R.drawable.ic_dialog_alert) .setTitle("Fermer SByNight") .setMessage("Etes-vous sur de vouloir quittez SByNight?") .setPositiveButton("Oui", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }) .setNegativeButton("Non", null) .show(); } return true; } }

PS: 我用 goPressed(); 测试过也不行!

【问题讨论】:

  • 我试图阅读你的问题......但它不起作用。告诉我们某事不起作用并不是很有帮助.... 是吗?

标签: java android webview return


【解决方案1】:

如果按下返回键时有要返回的页面,你想返回最后一页吗?

使用以下内容:

@Override
public void onBackPressed() {

    if(this.view.canGoBack()) 
    {
        this.view.goBack();
    } 
    else {
             new AlertDialog.Builder(this)
                .setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle("Fermer SByNight")
                .setMessage("Etes-vous sur de vouloir quittez SByNight?")
                .setPositiveButton("Oui", new DialogInterface.OnClickListener()
            {
                 @Override
                 public void onClick(DialogInterface dialog, int which) 
                 {
                    finish();    
                 }

            })
            .setNegativeButton("Non", null)
            .show();
       }
    }
}

我还没有真正检查过您的其余代码。只是可调用的函数。

【讨论】:

  • 您好,Gulfaran,感谢您的帮助!我测试了您的代码,但“返回 true;”错误:无效方法无法返回值 - 将方法无效更改为布尔值。当我更改时,布尔值传递给 RED 并且我也有这个错误:返回类型与 Activity.onBackPressed() 不兼容。
  • 啊是的 onkeydown 需要返回 onBackPressed 不返回任何东西。除非您使用布尔值,否则将其改回 void 并删除 return 语句。很抱歉,即使没有查看您的代码,我也应该注意到它。
  • 我做到了 - 当我启动应用程序并单击“返回”按钮时,应用程序“关闭”
  • 立即关闭还是在您单击对话框的正按钮后关闭?
  • 应用程序启动正常。但关闭的是“在我点击对话框的正面按钮后”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多