Android 每次创建片段时从活动中检索数据

Android 每次创建片段时从活动中检索数据,android,android-fragments,android-intent,interface,fragment,Android,Android Fragments,Android Intent,Interface,Fragment,活动 public class GroupesActivity extends BaseActivity { SelectedBundle selectedBundle; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_groupes);

活动

public class GroupesActivity extends BaseActivity {
SelectedBundle selectedBundle;
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_groupes);
        sectionsPagerAdapter = new GroupPagerAdapter(this, getSupportFragmentManager());
    viewPager.setAdapter(sectionsPagerAdapter);
    tabs.setupWithViewPager(viewPager);
    
}
 private void getAllGroup() {
// api call retrive data
        // send data using interface on response     
        //   set data         selectedBundle.onBundleSelect(isVisible,calanderModelList,groupModelList,eventModelList);

}

  public void setOnBundleSelected(SelectedBundle selectedBundle) {
        this.selectedBundle = selectedBundle;
    }

    public interface SelectedBundle {
        void onBundleSelect(boolean isVisible, List<CalanderModel> calanderModelList, List<GroupModel> groupModelList, List<EventModel> eventModelList);
    }


}
问题

当我刷这个双簧管碎片时,在选项卡视图中有三个碎片 然后在这个fragmnet中再次出现,没有调用接口,我 无法从活动中获取数据

如何从其父活动再次获取该数据,我只需要 在每次创建视图时从活动中检索该数据


非常感谢;)

在片段中使用
setMenuVisibility()
方法来修复问题

//In fragments
@Override
public void setMenuVisibility(final boolean isVisible) {
    super.setMenuVisibility(isVisible);
    if (isVisible) {
        //visible to user- do ur stuff
        ((GroupesActivity) getActivity()).setOnBundleSelected(new 
           GroupesActivity.SelectedBundle() {
            @Override
            public void onBundleSelect(boolean isVisible, List<CalanderModel> 
                calanderModelListtt, List<GroupModel> groupModelList, List<EventModel> 
                eventModelList) {

                Log.e("retrive data","data")
            }
        });
    }
}
//在片段中
@凌驾
public void setMenuVisibility(最终布尔值可见){
super.setMenuVisibility(可见);
如果(可见){
//对用户可见-做你的事
((GroupsActivity)getActivity()).setOnBundleSelected(新建)
GroupesActivity.SelectedBundle(){
@凌驾
public void onbundle选择(布尔值可见,列表
calanderModelListtt,列表组ModelList,列表
事件模型列表){
Log.e(“检索数据”、“数据”)
}
});
}
}
如果您遇到任何问题,以下链接可能会有所帮助:

使用片段中的
setMenuVisibility()
方法修复问题

//In fragments
@Override
public void setMenuVisibility(final boolean isVisible) {
    super.setMenuVisibility(isVisible);
    if (isVisible) {
        //visible to user- do ur stuff
        ((GroupesActivity) getActivity()).setOnBundleSelected(new 
           GroupesActivity.SelectedBundle() {
            @Override
            public void onBundleSelect(boolean isVisible, List<CalanderModel> 
                calanderModelListtt, List<GroupModel> groupModelList, List<EventModel> 
                eventModelList) {

                Log.e("retrive data","data")
            }
        });
    }
}
//在片段中
@凌驾
public void setMenuVisibility(最终布尔值可见){
super.setMenuVisibility(可见);
如果(可见){
//对用户可见-做你的事
((GroupsActivity)getActivity()).setOnBundleSelected(新建)
GroupesActivity.SelectedBundle(){
@凌驾
public void onbundle选择(布尔值可见,列表
calanderModelListtt,列表组ModelList,列表
事件模型列表){
Log.e(“检索数据”、“数据”)
}
});
}
}
如果您遇到任何问题,以下链接可能会有所帮助:

谢谢您的快速回答,但它给出了NullPointerException:在接口方法上,SetOnBundleSelected处有一个空对象引用,您可以共享logcat日志吗?问题是,当我通过滑动tabview进入片段3,再次进入它创建的片段1时,该接口方法没有调用djava.lang.NullPointerException:尝试调用com.illumaworks.Whenis.fragments.AllGroupsFragments.setMenuVisibility(AllGroupsFragments.java:96)上的空对象引用上的虚拟方法“void com.activity.GroupsActivity.setOnBundleSelected(com.activity.GroupsActivity$SelectedBundle)”当片段创建时,是否有其他方法可以再次从父活动获取数据?感谢您的快速回答,但它给出了NullPointerException:在接口方法上,SetOnBundleSelected处有一个空对象引用,您可以共享logcat日志吗?问题是,当我通过滑动tabview进入片段3,再次进入它创建的片段1时,该接口方法没有调用djava.lang.NullPointerException:尝试调用在com.illumaworks.Whenis.fragments.AllGroupsFragments.setMenuVisibility(AllGroupsFragments.java:96)上的空对象引用上的虚拟方法“void com.activity.GroupsActivity.setOnBundleSelected(com.activity.GroupsActivity$SelectedBundle)”,是否有其他方法在片段创建时再次从父活动获取数据?
//In fragments
@Override
public void setMenuVisibility(final boolean isVisible) {
    super.setMenuVisibility(isVisible);
    if (isVisible) {
        //visible to user- do ur stuff
        ((GroupesActivity) getActivity()).setOnBundleSelected(new 
           GroupesActivity.SelectedBundle() {
            @Override
            public void onBundleSelect(boolean isVisible, List<CalanderModel> 
                calanderModelListtt, List<GroupModel> groupModelList, List<EventModel> 
                eventModelList) {

                Log.e("retrive data","data")
            }
        });
    }
}