我正在学习使用 jquerymobile 和 Android sdk 开发网络应用程序。我的网络应用程序在一些加载的页面中构建:
private void loadURL(final String in){
handler.post(new Runnable() {
public void run() {
webView.loadUrl(in);
}
});
}
public void loadPage(String in){
final String url = HTML_ROOT + in;
loadURL(url);
}
这是我的 onCreate 方法:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
webView = new WebView(this); //super.init();
setContentView(webView);
webView.getSettings().setJavaScriptEnabled(true);
.....
handler = new Handler();
webView.addJavascriptInterface(this, "MyTeam");
loadPage("menu.html");
}
和 onkeydown 方法:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(webView == null){
Log.d("My Tag", "Webview is null on KeyCode: " + String.valueOf(keyCode));
}
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
问题是: 示例 a: 1- 从 menu.html 我进入另一个页面 xxx.html 2- 我单击智能手机上的后退按钮 3- onKeyDown 被触发
示例 b:1-来自 menu.html 我单击智能手机后退按钮或其他按钮
返回 super.onkeydown 后,我在示例 a 和示例 b 中返回:
12-01 15:34:56.796: E/AndroidRuntime(14048): FATAL EXCEPTION: main
12-01 15:34:56.796: E/AndroidRuntime(14048): java.lang.NullPointerException
12-01 15:34:56.796: E/AndroidRuntime(14048): at org.apache.cordova.DroidGap.onKeyUp(DroidGap.java:1018)
为什么 DroidGapClass 给我返回空指针异常??????
非常感谢。