Java 使用Android Studio将对象或数组列表从一个片段传递到另一个片段

Java 使用Android Studio将对象或数组列表从一个片段传递到另一个片段,java,android,Java,Android,我试图将对象或arrayList从这个片段传递到另一个片段。我使用的是Intent方法,但我遇到了同样的问题,我不知道应该在bundle.putParcelable()方法中放入什么参数 您可以看到下面的示例 片段一 android.support.v4.app.FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction(); ft.setTransition(FragmentT

我试图将对象或arrayList从这个片段传递到另一个片段。我使用的是Intent方法,但我遇到了同样的问题,我不知道应该在bundle.putParcelable()方法中放入什么参数


您可以看到下面的示例

片段一

android.support.v4.app.FragmentTransaction ft = 
    getActivity().getSupportFragmentManager().beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
OfficeCategoryFragment frag = new OfficeCategoryFragment();

Bundle bundles = new Bundle();
Division aDivision = divisionList.get(position);

// ensure your object has not null
if (aDivision != null) {
    bundles.putSerializable("aDivision", aDivision);
    Log.e("aDivision", "is valid");
} else {
    Log.e("aDivision", "is null");
}
frag.setArguments(bundles);
ft.replace(android.R.id.content, frag);
ft.addToBackStack(null);
ft.commit();
片段2

Bundle bundle = getArguments();
Division division= (Division) bundle.getSerializable("aDivision");
Log.e("division TEST", "" + division.getName());

您可以看到下面的示例

片段一

android.support.v4.app.FragmentTransaction ft = 
    getActivity().getSupportFragmentManager().beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
OfficeCategoryFragment frag = new OfficeCategoryFragment();

Bundle bundles = new Bundle();
Division aDivision = divisionList.get(position);

// ensure your object has not null
if (aDivision != null) {
    bundles.putSerializable("aDivision", aDivision);
    Log.e("aDivision", "is valid");
} else {
    Log.e("aDivision", "is null");
}
frag.setArguments(bundles);
ft.replace(android.R.id.content, frag);
ft.addToBackStack(null);
ft.commit();
片段2

Bundle bundle = getArguments();
Division division= (Division) bundle.getSerializable("aDivision");
Log.e("division TEST", "" + division.getName());

使用setArguments在活动中添加与putextra相同的数据

Bundle bundle = new Bundle();
bundle.putString("latitude", latitude);
bundles.putSerializable("KEY_ARRAYLIST", DIVID);
bundle.putString("longitude", longitude);
bundle.putString("board_id", board_id);
MapFragment mapFragment = new MapFragment();
mapFragment.setArguments(bundle);
要获取数据,请使用与活动中的getExtra相同的getArguments

String latitude =  getArguments().getString("latitude")
 Arraylist obj=    getArguments().getSerializable("KEY_ARRAYLIST");

使用setArguments在活动中添加与putextra相同的数据

Bundle bundle = new Bundle();
bundle.putString("latitude", latitude);
bundles.putSerializable("KEY_ARRAYLIST", DIVID);
bundle.putString("longitude", longitude);
bundle.putString("board_id", board_id);
MapFragment mapFragment = new MapFragment();
mapFragment.setArguments(bundle);
要获取数据,请使用与活动中的getExtra相同的getArguments

String latitude =  getArguments().getString("latitude")
 Arraylist obj=    getArguments().getSerializable("KEY_ARRAYLIST");