按下按钮时刷新webview?

时间:2013-09-26 18:06:45

标签: android xml

所以我要做的是使用操作栏中的按钮刷新我的webView,问题是什么?嗯,使用一些代码更容易解​​释。

这是我的MainActivity.java

的底部
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

final String url=getArguments().getString("url");

View rootView = inflater.inflate(R.layout.fragment_main_dummy,container, false);
WebView wv = (WebView)rootView.findViewById(R.id.webView);
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl("http://feedit.themeister.se/app/"+url+".php");
wv.setWebViewClient(new WebViewClient());
return rootView;
}

为了刷新webView,我需要“url”字符串,但是字符串是在onCreateView中创建的,上面我有这个实际上使刷新按钮工作

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case R.id.action_refresh:
        // Here should some code be placed but I don't know what to place
        return true;
    default:
        return super.onOptionsItemSelected(item);
}

}

我不能使用url字符串或webv的“wv”。任何人都知道我应该如何做到这一点?

提前致谢!

1 个答案:

答案 0 :(得分:1)

  

我不能使用url字符串或webv的“wv”。任何人都知道我应该如何做到这一点?

这是因为您的两个变量url和wv都是本地人,这意味着它们只存在于您的onCreateView方法下。

要在onOptionsItemSelected方法中使用变量,请将其声明放在方法之外,就像在课程顶部一样。

所以,步骤:

  • WebView wv;放在课程顶部,
  • 更改WebView wv = (WebView)rootView.findViewById(R.id.webView);
  • 中的wv = (WebView)rootView.findViewById(R.id.webView);
  • 修改您的onOptionsItemSelected以刷新网页浏览:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.action_refresh:
            wv.loadUrl(wv.getUrl());
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
    

我还建议你学习关于变量作用域的Java基础知识(比如这个:http://www.java-made-easy.com/variable-scope.html)并在开始使用Android代码之前查找有关java基础知识的其他教程。