如何在我的活动中从片段中获取子视图?

时间:2016-03-15 04:00:44

标签: android fragment

好吧,当我尝试从我的活动中的片段中获取webView时,它不起作用。我的代码如下:

WebView webView;
webView = (WebView) getFragmentManager()
                .findFragmentById(R.id.fragment_goods_details).getView()
                .findViewById(R.id.goods_details);

2 个答案:

答案 0 :(得分:0)

基本上,这是一个坏主意。由于片段具有自己的生命周期。 在您的活动中,您可以控制您的片段以添加/替换它,但您不知道您的片段何时准备好进行操作。

而不是那样,您可以获得Event Bus或RxAndroid的支持,从您的活动中将事件asyn发送到您的Fragment。在片段中,您可以安全地处理webview的操作/数据/状态

答案 1 :(得分:0)

YourFragmentClass {
    WebView webview;
    public WebView getWebview(){ return webview;}
}

在你的活动中:

Fragment f = getFragmentManager().findFragmentById(xxxx);
if(f instanceOf YourFragmentClass) {
    webView = (YourFragmentClass)f.getWebview();
}