Android - 如何在片段之间传递数据

Android - How to pass data between fragments

我正在尝试将数据从可点击的 TextView 传递到片段之间的 EditText。现在我可以在单击 TextView 时导航到另一个片段。这是 CategoryFragment:

的编码
public boolean onChildClick(ExpandableListView parent, View v,
                                        int groupPosition, int childPosition, long id) {
                // TODO Auto-generated method stub
                Toast.makeText(
                        getActivity().getApplicationContext(),
                        listDataHeader.get(groupPosition)
                                + " : "
                                + listDataChild.get(
                                listDataHeader.get(groupPosition)).get(
                                childPosition), Toast.LENGTH_SHORT)
                        .show();
                FragmentManager fragmentManager = getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

                HomeFragment fragment = new HomeFragment();
                fragmentTransaction.replace(R.id.frame_container, fragment);
                fragmentTransaction.commit();
                return false;
            }

我觉得这个是可以做到的,因为toast可以检索到listDataChild里面的字符串。我似乎无法一夜之间解决的是如何检索 listDataChild 字符串并将其从片段 1 传递到片段 2,其中片段 2 包含一个 EditText 框。如何将字符串从 textview 放入 edittext?

您可以使用 bundle 在片段之间传递数据...

Bundle args = new Bundle();

HomeFragment fragment = new HomeFragment();

args.putInt("key", value);

fragment .setArguments(args);

在 CategoryFragment 中传递数据使用 Bundle like

HomeFragment fragment = new HomeFragment();
Bundle bundle = new Bundle();
bundle.putString("key", listDataChild.get(
                                listDataHeader.get(groupPosition)).get(
                                childPosition));
fragment.setArguments(bundle);

HomeFragment 中,在 onActivityCreated(....)

中使用此代码
Bundle bumdle = getArguments();
if (bundle  != null)
 String value = bundle.getString("key");