簡體   English   中英

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字符串並將其從 Fragment 1 傳遞到 Fragment 2,其中 Fragment 2 包含一個 EditText 框。 如何將字符串從 textview 放入 edittext?

您可以使用 bundle 在片段之間傳遞數據...

Bundle args = new Bundle();

HomeFragment fragment = new HomeFragment();

args.putInt("key", value);

fragment .setArguments(args);

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM