我已经经历了这么多stackoverflow回答了这个问题,但没有为我工作。我想要android后退按钮来控制webview历史记录。每当我点击模拟器中的后退按钮,应用程序就会关闭。创建后退按钮来控制WebView
这是我的活动,涉及到XML文件containting我的WebView(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'
这个,你只需点击您的WebView任何链接?当你的活动第一次开始时,历史中将没有页面,因此'webView.canGoBack()'将是错误的,这意味着你后退按钮将关闭活动。在按下后退按钮之前,您必须点击webview中的几个链接才能创建页面历史记录。 – FoamyGuy