我正在构建一个Android应用程序并且我有一个警告,但是没有引起任何问题,当我看到警告时,我想至少知道是什么导致它。该应用使用webview。
以下是导致警告的代码。
ImageView viewSplash;
WebView mWebView;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
viewSplash = (ImageView) findViewById(R.id.splash);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setGeolocationEnabled(true);
mWebView.loadUrl("http://www.google.com");
mWebView.setWebViewClient(new WebViewtest(){
@Override
public void onPageFinished(WebView View, String url)
{
viewSplash.setVisibility(View.GONE);
}
});
}
这是错误:
应以静态方式访问静态字段View.GONE。
答案 0 :(得分:9)
好吧,我可以看到一个可能相关的问题。您有一个大写的View作为参数名称(请参阅public void onPageFinished(WebView -> View <-, String url)
)。没有资本化。
编辑:问题是参数名称是错误的上限,并使用实例变量访问屏蔽了类访问,这就是您收到错误的原因。更好的解决方法是整理大写。
答案 1 :(得分:2)
好的,发布后我修好了警告......
我改变了这个:
viewSplash.setVisibility(View.GONE);
到此:
viewSplash.setVisibility(android.view.View.GONE);
答案 2 :(得分:1)
常量View.GONE或(在我的情况下)Context.NOTIFICATION_SERVICE是Context类中的常量,不能通过本地Context或View访问它们。所以错误是引用somethingorother.GONE而不是View.gone。