gpt4 book ai didi

java - 数据从父 fragment 传递到选项卡式 fragment (子) - Android

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:13 25 4
gpt4 key购买 nike

我想将数据从父 fragment 传递到选项卡式 fragment (子)以进行初始数据传递(当第一次加载父 fragment 时)我使用了 bundle 数据。当在子 fragment 的嵌套 fragment 中时,我调用 PopbackStack() 以便通过单击按钮返回。在那里我需要更新之前传递到子选项卡 fragment 中的 bundle 数据。 bundle 数据未获得更新的数据集

父 fragment - 初始状态

 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ViewPager viewPager = (ViewPager) getView().findViewById(R.id.pager);
CropFragAdapter adapter = new CropFragAdapter(getChildFragmentManager());



Fragment tabfragment1 = new CropAlreadyPlantedFragment();
Fragment tabfragment2 = new FuturePlantedFragment();


Bundle b = new Bundle();
b.putString("RAWJsonArr", INITAL_DATA_FOR_TAB_1);
tabfragment1.setArguments(b);

b.putString("RAWJsonArr", INITAL_DATA_FOR_TAB_2);
tabfragment2.setArguments(b);



adapter.addFragment(tabfragment1, "Already Planted");
adapter.addFragment(tabfragment2, "Future Planted");


viewPager.setAdapter(adapter);

TabLayout tabLayout = (TabLayout) getView().findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);

}

子 fragment - 选项卡 fragment

 public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
cropAlreadyPlantedModel = new CropAlreadyPlantedModel();
String RAWJsonArr =null;
Bundle b = getArguments();
if (b != null) {
RAWJsonArr = b.getString("RAWJsonArr");
JSONOBJ = null;
try {
DATASET = new JSONArray(RAWJsonArr);
} catch (JSONException e) {
e.printStackTrace();
}
}


View view = cropAlreadyPlantedModel.getCropItems(inflater, container, getContext(), DATASET);
return view;
}

子->子 fragment 的按钮点击

 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

saveBtn = (Button) getView().findViewById(R.id.button);
saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {


JSONObject obj = new JSONObject();
try {
obj.put("crop_details",DATASETARRY);
} catch (JSONException e) {
e.printStackTrace();
}

if(SELECTED_TAB ==0) {
childDataCropDetails = obj; //static variable in Parent Fragment
}
else if(SELECTED_TAB ==1){
Future_childDataCropDetails = obj; //static variable in Parent Fragment
}
FragmentManager manager = getActivity().getSupportFragmentManager();


manager.popBackStack();

}
});


}

我想念这里什么?请帮忙

最佳答案

问题是我在子 fragment 中谈论的范围是错误的(不是当前范围)。

Bundle b = this.getArguments();

关于java - 数据从父 fragment 传递到选项卡式 fragment (子) - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48266859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com