在Android应用程序的操作栏中刷新按钮

时间:2015-02-27 23:15:48

标签: android android-actionbar

我是一个非常新的Android应用程序。我试图在操作栏中执行应该包含刷新按钮的应用程序。在编译代码时,工作室正在提示此错误

“错误:(50,20)错误:无法从静态上下文引用非静态方法reload()”

我现在写了这篇文章

import android.os.Bundle;
import android.webkit.WebView;
import android.widget.Toast;
import android.webkit.WebViewClient;
import android.app.Activity;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Menu;


public class MainActivity extends Activity {

private WebView mWebView;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mWebView = new WebView(this);
    mWebView.getSettings().setJavaScriptEnabled(true);
    final Activity activity = this;
    mWebView.setWebViewClient(new WebViewClient(){

        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
        }

    });

    mWebView.loadUrl("http://www.example.com");
    setContentView(mWebView);

}

@Override
public boolean onCreateOptionsMenu (Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if(item.getItemId() == R.id.action_refresh){
        WebView.reload();
        return true;
    }
    return super.onOptionsItemSelected(item);
 }
}

menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"      tools:context=".MainActivity">
<item android:id="@+id/action_settings" android:title="@string/action_settings"
    android:orderInCategory="100" app:showAsAction="never" />

 <item
    android:id="@+id/action_refresh"
    android:title="@string/refresh_button"
    android:icon="@drawable/ic_action_refresh"
    android:orderInCategory="1"
    app:showAsAction="never"
    />

</menu>

1 个答案:

答案 0 :(得分:2)

WebView.reload()更改为mWebView.reload()

在前一种情况下,您在reload() 上调用WebView,而在后一种情况下,您告诉您要重新加载WebView的特定实例

This SO question可能会澄清一些事情。