我经历了这么多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'
答案 0 :(得分:0)
希斯, 你做了很好的工作,除了这个
WebView myWebView =(WebView)findViewById(R.id.myWebView);
这里你不必再用WebView声明myWebView。简单到了
myWebView =(WebView)findViewById(R.id.myWebView);
现在你将看到你想要的运作方式。
答案 1 :(得分:0)
当您点击后退按钮时,会在您的“活动”中调用onBackPressed()。这在任何onKey事件之前被调用。尝试重写此方法。