我有一個難以置信的困難時間讓下面的應用程序不按下後退按鈕時顯示錯誤。我只想要網站加載一個網頁和後退按鈕,就像平時一樣執行。有沒有人在這裏看到任何錯誤? LogCat顯示沒有錯誤,使用模擬器不會中斷,但它在我的平板電腦上始終斷開。後退按鈕觸發意外停止
MyWebViewClient.java
package com.MySite;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
MySite.java
package com.mysite;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
public class MySite extends Activity {
WebView DCWebView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//init webview
WebView DCWebView = (WebView) findViewById(R.id.webview);
DCWebView.getSettings().setJavaScriptEnabled(true);
DCWebView.loadUrl("http://mobile.mysite.com");
//when a link is clicked, use the WebView instead of opening a new browser
DCWebView.setWebViewClient(new MyWebViewClient());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && DCWebView.canGoBack()) {
DCWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
你是說'把WebView'放在那裏,我把它定義爲全局的? – Webnet
是的!有用!!! – Webnet
要回復您的第一條評論,當您在方法中聲明瞭'DCWebView'時,它會覆蓋同名的全局變量。因此,那是你在方法中使用的'DCWebView' - 而不是你想要使用的那個。 – Phil