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

问题描述 投票:0回答:3

我正在尝试将数据从可单击的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;
            }

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

java android android-fragments expandablelistview
3个回答
0
投票

在CategoryFragment中使用Bundle传递数据,如

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");

1
投票

您可以使用捆绑软件在片段之间传递数据...

Bundle args = new Bundle();

HomeFragment fragment = new HomeFragment();

args.putInt("key", value);

fragment .setArguments(args);

0
投票

使用在官方ViewModel documentation上建议的SharedViewModel

此答案可以帮助您,https://stackoverflow.com/a/60696777/6761436

© www.soinside.com 2019 - 2024. All rights reserved.