我已經經歷了這麼多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