我想做一個基本的webview應用程序,但它給4錯誤。基本的webview應用程序問題
Error:(35, 9) error: method does not override or implement a method from a supertype
Error:(46, 32) error: non-static method canGoBack() cannot be referenced from a static context
Error:(47, 32) error: non-static method goBack() cannot be referenced from a static context
Error:Execution failed for task ':app:compileDebugJava'. Compilation failed; see the compiler error output for details.
誰能告訴我我的代碼有什麼問題嗎?
這裏是我的代碼:
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
setContentView(R.layout.activity_main);
WebView mainWebView = (WebView) findViewById(R.id.mainWebView);
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.loadUrl("http://facebook.com/");
}
private class MyCustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (WebView.canGoBack()) {
WebView.goBack();
} else {
finish();
}
return true;
}
}
}
}
這是我的新代碼現在在你們的幫助,顯示沒有錯誤,但仍然無法正常工作(無法完成gradle這個執行,當我嘗試在運行它仿真器):
public class MainActivity extends ActionBarActivity {
private WebView mainWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
setContentView(R.layout.activity_main);
mainWebView = (WebView) findViewById(R.id.mainWebView);
WebSettings webSettings = mainWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
mainWebView.setWebViewClient(new MyCustomWebViewClient());
mainWebView.loadUrl("http://facebook.com/");
}
private class MyCustomWebViewClient extends WebViewClient {
public boolean shouldOvrrideLoading (WebView view, String url) {
view.loadUrl(url);
return true;
}
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (mainWebView.canGoBack()) {
mainWebView.goBack();
} else {
finish();
}
return true;
}
}
return false;
}
}
use'mainWebView' for調用'canGoBack'和'goBack'方法 – 2015-01-04 14:02:59
實例方法需要從實例中調用。正如它在上面評論中說的「使用* mainWebView.canGoBack()*和* mainWebView.goBack()*」 – Rami 2015-01-04 14:06:55