[英]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.