【问题标题】:Android Webview make back button go to previous pageAndroid Webview 使返回按钮转到上一页
【发布时间】:2016-10-07 00:19:14
【问题描述】:

我有一个 Web 视图,可以让我浏览网站。当我单击后退按钮时,它不会转到上一页,而是退出应用程序。我在 MainActivity.java 中添加了以下方法

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    setContentView(R.layout.activity_main);
    WebView webview = (WebView) this.findViewById(R.id.webView);
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_BACK:
                if (webview.canGoBack()) {
                    webview.goBack();
                } else {
                    finish();
                }
                return true;
        }
    }
    return super.onKeyDown(keyCode, event);
}

【问题讨论】:

标签: android


【解决方案1】:

不要覆盖onKeyDown事件,覆盖onBackPressed,这样每次按下后退按钮,你都可以覆盖它,并在其中添加你自己的逻辑。代码是这样的:

@Override
public void onBackPressed() {
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}

【讨论】:

    【解决方案2】:

    我认为你应该覆盖你的活动OnBackPressed

    @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }
    

    【讨论】:

      【解决方案3】:

      下一个按钮和进度条的完整参考:put back and next button in webview

      如果您想在点击手机的返回按钮时返回页面,请使用:

      @Override
      public void onBackPressed() {
          if (webView.canGoBack()) {
              webView.goBack();
          } else {
              super.onBackPressed();
          }
      } 
      

      您也可以像这样创建自定义后退按钮:

      btnback.setOnClickListener(new View.OnClickListener() {
      
              @Override
              public void onClick(View v) {
                  // TODO Auto-generated method stub
      
                  if (wv.canGoBack()) {
                      wv.goBack();
                  }
              }
          }); 
      

      【讨论】:

        【解决方案4】:

        后键按下事件不适合在这里使用此代码:

        @Override
        public void onBackPressed() {
            super.onBackPressed();
            Intent intent=new Intent(LiveImage.this,DashBoard.class);
            startActivity(intent);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-19
          • 2013-04-12
          • 2011-08-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多