创建后退按钮以控制WebView

时间:2013-05-21 23:06:52

标签: java android webview

我经历了这么多stackoverflow回答有关此问题的问题,但没有任何对我有用。我想要android后退按钮来控制webview历史记录。每次我点击模拟器中的后退按钮时,应用程序都会关闭。

这是我的活动,它涉及包含我的webview的xml文件(id是myWebView):

    package com.example.inncwrestling;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class BrandsActivity extends Activity {

    WebView myWebView;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.iframe_brands);

        WebView myWebView = (WebView) findViewById(R.id.myWebView);
    myWebView.setWebViewClient(new WebViewClient());
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        myWebView.loadUrl("http://www.wwe.com");

    }

    public class myWebClient extends WebViewClient
    {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub

            view.loadUrl(url);
            return true;

        }
    }

    // To handle "Back" key press event for WebView to go back to previous screen.
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event)
  {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
        myWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
   }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;

    }

    /*Open SettingsActivity**/
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
      switch (item.getItemId()) {
      case R.id.menu_settings:
        Toast.makeText(this, "Settings", Toast.LENGTH_SHORT)
            .show();
        startActivity(new Intent(this, SettingsActivity.class));
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }


}

我一直在寻找解决方案两天了,我开始认为我必须查看像UberSocial这样的应用程序的来源。

我真的需要帮助,如果不是问题,请使用我的xml WebView ID'myWebView'

2 个答案:

答案 0 :(得分:0)

希斯, 你做了很好的工作,除了这个

  

WebView myWebView =(WebView)findViewById(R.id.myWebView);

这里你不必再用WebView声明myWebView。简单到了

  

myWebView =(WebView)findViewById(R.id.myWebView);

现在你将看到你想要的运作方式。

答案 1 :(得分:0)

当您点击后退按钮时,会在您的“活动”中调用onBackPressed()。这在任何onKey事件之前被调用。尝试重写此方法。

onBackPressed