我在标签布局中加载了两个ListFragments。我需要在另一个ListFragment(Next Tab)中获取所选ListFragment的行项目详细信息(当前选项卡)。我怎样才能做到这一点?我应该使用共享首选项中的设置还是有任何方法可以从其他标签访问所选的列表片段详细信息?
答案 0 :(得分:2)
从当前选定的行发送数据:适配器单击
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);
答案 1 :(得分:0)
共享首选项用于存储首选项,而不是程序数据。根据{{1}}从中获取数据的位置以及应用程序的结构,您可以将数据放在一个包中,然后使用ListFragment
和fragment.getArguments()
。