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