【问题标题】:Refresh webview when pressing button?按下按钮时刷新网页视图?
【发布时间】:2013-10-02 20:24:38
【问题描述】:

所以我想要做的是使用操作栏中的按钮刷新我的 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”。有谁知道我应该如何完成这项工作?

提前致谢!

【问题讨论】:

标签: android xml


【解决方案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 以刷新 web 视图,如下所示:

    @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 基础知识的其他教程。

【讨论】:

  • 有两个问题。一个新问题,一个存在。 1. 将wv = (WebView)rootView.findViewById(R.id.webView); 放入 onOptionsItemSelected 时,我收到一条错误消息,提示“无法解析 rootView”,并且仅在 onCreateView 中添加我下面的行不起作用,因为我没有充气机等。 2.仍然不能使用“url”。
  • 1.不不,您误会了,您不必更改wv = (WebView)rootView.findViewById(R.id.webView); 的位置,只需删除行首的WebView。 2.onOptionsItemSelected中的变量url不必使用,使用wv.loadUrl(wv.getUrl());即可。
猜你喜欢
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
  • 2017-04-08
  • 2015-07-12
  • 2018-05-29
相关资源
最近更新 更多