我想做一个基本的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