0

所以我想要做的是使用操作栏中的按钮刷新我的 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);
}

}

我不能为 webView 使用 url 字符串或“wv”。任何人都知道我应该如何使这项工作?

提前致谢!

4

1 回答 1

1

我不能为 webView 使用 url 字符串或“wv”。任何人都知道我应该如何使这项工作?

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

要在方法中使用变量onOptionsItemSelected,请将它们的声明放在它们的方法之外,就像在类的顶部一样。

所以,在步骤:

  • 放在WebView wv;班上,
  • 变化WebView wv = (WebView)rootView.findViewById(R.id.webView);_wv = (WebView)rootView.findViewById(R.id.webView);
  • 像这样修改你onOptionsItemSelected的刷新webview:

    @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 )并在继续之前查找有关 Java 基础知识的其他教程安卓代码。

于 2013-09-26T18:56:15.103 回答