首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FragA中的ListAdapter更新到FragB中的ListAdapter?

从FragA中的ListAdapter更新到FragB中的ListAdapter?
EN

Stack Overflow用户
提问于 2017-05-30 05:52:36
回答 2查看 105关注 0票数 0

场景:您有两个片段,片段A填充ListAdapter,片段B包含带有ListAdapter的SearchView。

问:片段A如何更新片段B的SearchView的ListAdapter?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-30 06:06:26

片段不应该直接沟通。您应该使用您的活动在子片段之间进行通信。您可以创建一个接口,它将为片段之间的通信定义一个契约。

代码语言:javascript
复制
public interface UpdateSerachViewList {
    void update(List<> data);
}

活动将实现此接口。活动可以访问fragment1和片段2。

如果您想从frag1发送消息到frag2,那么fragment1将在onAttach方法中将activity (Context param)保存为UpdateSerachViewList处理程序。

代码语言:javascript
复制
public class Frag1 extends Fragment {
    private UpdateSerachViewList mCallback;
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mCallback = (UpdateSerachViewList) context; 
// If exception is throws it measn you want to use frafgment with activity which does not implement communication contract. Design error
    }

    @Override
    public void onStart() {
        super.onStart();
        mCallback.update(...);
    }
}

在活动中,您可以在Fragment2上调用您想要的方法。或者,您可以让frag2也实现契约,这样您就不必直接引用Frag2,而只需要引用通信契约。

票数 1
EN

Stack Overflow用户

发布于 2017-05-30 05:59:39

您可以通过Fragment访问ID

代码语言:javascript
复制
Fragment_1 fragment = (Fragment_1) getSupportFragmentManager().findFragmentById(R.layout.fr1);

fragment.updateSearchView();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44254442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档