0

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

这是我的 Activity,它与包含我的 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'

4

2 回答 2

0

咝咝,除了这个,你做得很好

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

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

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

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

于 2013-05-21T23:56:53.353 回答
0

当您点击后退按钮时,onBackPressed() 会在您的 Activity 中调用。这在任何 onKey 事件之前被调用。尝试覆盖此方法。

onBackPressed

于 2013-05-21T23:59:54.310 回答