我在选项卡布局中加载了两个ListFragments。我需要在另一个列表片段(下一个选项卡(中获取所选列表片段的行项目详细信息(当前选项卡(。我怎样才能做到这一点?我应该在共享首选项中进行设置还是有没有办法从其他选项卡访问选定的列表片段详细信息?
从当前所选行发送数据:适配器单击
adapter.setClickListener(new HomeAdapter.ClickListener() {
@Override
public void itemClicked(View view, int position) {
Fragment carDetail = new CarDetailFragment();
Gson gson = new Gson();
String jsonString = gson.toJson(mListItem.get(position));
Bundle args = new Bundle();
args.putString("jsonString", jsonString);
Log.e("jsonString", jsonString);
carDetail.setArguments(
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(title);
fragmentTransaction.replace(R.id.container_body, carDetail);
fragmentTransaction.commit();
将所选数据放入另一个片段...。
将以下代码放入onCreateView方法中。
String jsonString = getArguments().getString("jsonString", " ");
Gson gson = new Gson();
Log.e("CAR DETAIL", jsonString);
obj = gson.fromJson(jsonString, HomeList.class);
共享首选项用于存储首选项,而不是程序数据。根据ListFragment
从何处获取数据以及应用程序的结构,您可以将数据放在一个捆绑包中并使用 fragment.getArguments()
和 fragment.setArguments()
。