Ari*_*ant 5 android back-button webview
我试图覆盖后退按钮,以便它返回上一页,但它只是退出应用程序.这里;代码..请告诉我哪里出错了.
package com.example.thebase;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainAccelerometer extends Activity implements AccelerometerListener{
WebView myWebView;
//Back Button Code
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode)
{
case KeyEvent.KEYCODE_BACK:
if(myWebView.canGoBack() == true){
myWebView.goBack();
}else{
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
//--------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.accelerometer_example_main);
//ENABLING JAVASCRIPT CODE
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
//WEBVIEW CODE
myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("http://www.pingcampus.com/greedy/get_category.php");
//WebView client
myWebView.setWebViewClient(new HelloWebViewClient());
//Back Button
//------
};
//rest of the code
Run Code Online (Sandbox Code Playgroud)
TNR*_*TNR 23
你有onBackPressed()方法来覆盖而不是onKeyDown().更换onKeyDown()用onBackPressed()如下:
@Override
public void onBackPressed() {
if (myWebView.canGoBack())
myWebView.goBack();
else
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
编辑
还要检查你的onCreate()中的第3行
WebView myWebView = (WebView) findViewById(R.id.webview);
Run Code Online (Sandbox Code Playgroud)
您myWebView再次声明为局部变量,并且未实例化全局变量,这会抛出NullPointerException并崩溃应用程序.
因此,请更改您的第3行代码,如下所示:
myWebView = (WebView) findViewById(R.id.webview);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19487 次 |
| 最近记录: |