I have this code:
package com.android.m2s;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.wvBrowser);
myWebView.loadUrl("http://www.message2space.es.vu/app/index.html");
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.getSettings().setGeolocationEnabled(true);
myWebView.setWebViewClient(new CustomWebViewClient());
}
private class CustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
WebView myWebView;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) {
myWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
but it does not work, when I give back the application crashes and asks me to close it. Not what I've done wrong because all the codes I've seen are so Webview and function. Why mine is not working?
You have a WebView myWebView;
declaration that is never assigned.
To solve this you can change:
WebView myWebView = (WebView) findViewById(R.id.wvBrowser);
to
myWebView = (WebView) findViewById(R.id.wvBrowser);