【问题标题】:fragment data update from another fragment?从另一个片段更新片段数据?
【发布时间】:2014-03-03 19:10:28
【问题描述】:

在我的消息应用程序中,我有多个带有消息的联系人。我有一个主要活动和两个片段,outerFragmentinnerFragment。我在 outerfragment 列表中显示的每个联系人的最新消息。单击outerfragmrnt 的每一行时,我正在打开innerfragment,其中包含单个联系人的所有消息。现在,当我从innerfragment 删除最新消息时,它正在删除,但在outerfragment 中没有更新。如何当我从innerfragment 删除最新消息时,我会更新outerfragment 中的最新消息。如何在android中实现这一点?

【问题讨论】:

    标签: android android-fragments broadcastreceiver fragment android-listfragment


    【解决方案1】:

    您可以为此目的使用侦听器。这可以实现如下

    创建如下界面:

    public interface myListener {
        public void updateView(boolean success, Object message);
    }
    

    让你的OuterFragment 实现这个监听器并覆盖未实现的方法:

    public class OuterFragment extends Fragment implements myListener {
    
        onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            InnerFragment innerfrag = new InnerFragment();
            innerFrag.setmyListener(this);
        }
    
        updateView(boolean success, Object message) {
            // your code here
        }
    
    }
    

    在 InnerFragment 中创建 setmyListener() 方法

    InnerFragment extends Fragment {
    
        myListener listener;
    
        public void setmyListener (myListener listener){
            this.listener = listener
        }
    
    }
    

    当您想更新OuterFragment时,通过调用此方法将InnerFragment回调到外部

    listener.updateView(success,message);
    

    【讨论】:

    • 谢谢,这帮助我想出了一个解决方案,我有一个片段(父级)在它上面生成一个片段(子级 A),然后移动到另一个(子级 B)和另一个(孩子 C)然后最后一个(孩子 C)必须通知父母发生了一些变化。我要说的一件事是,您上面的代码包含一些次要错误,在onCreateView 之前缺少@Override public View,在updateView 之前缺少public void
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    相关资源
    最近更新 更多