0

我创建了一个应用程序,该应用程序具有 (X) 个选项卡,每个选项卡都是动态创建的,并为其创建了关联的 WebView。

我还有一个带有“重新加载”按钮的菜单我想在单击此菜单时重新加载所有动态创建的 webview,我的问题是如何获取这些没有 ID 的 WebView 的句柄。

这是创建 WebView 的 Activity 片段。

// 请注意,在下面的代码中 2 个字符串@myId@url从另一个活动传递的。

WebView browse;
    protected void onCreate(Bundle savedInstanceState) {

        final Activity activity = this;     

        super.onCreate(savedInstanceState);
        browse=new WebView(this);
        browse.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN );        
        setContentView(browse);
        Intent sender=getIntent();
        String myUrl = sender.getStringExtra("url");
        int myId = Integer.parseInt( sender.getStringExtra("webid") );      
        browse.setId( myId );
        browse.setWebViewClient( new Youm7WebViewClient());
        browse.getSettings().setJavaScriptEnabled(true);        
        browse.loadUrl( myUrl );

    }

现在在另一个活动中,我尝试通过单击“重新加载”按钮执行以下操作

请注意,i这与上述活动中发送的值相同MyId

// this crashes the app
for(int i=0;i<tabs.length;i++){
     String X = String.valueOf(i);
     WebView ourWebview = (WebView) findViewById(i);
     ourWebview.reload();
}
4

1 回答 1

1

只要您不重新使用名为“browse”的 WebView 引用,那么您就可以调用browse.reload();If 但是您正在重新使用该引用(即,您制作另一个新的 WebView 并将相同的浏览设置为与新的相同。)然后您可以保留一个 ArrayList 或其他一些数据结构来保存您的 WebView 引用。然后你可以遍历它并在每个对象索引上调用 .reload() 。

于 2012-04-20T19:08:32.330 回答