簡體   English   中英

使用Android Studio將對象或數組列表從一個片段傳遞到另一個片段

[英]Passing object or Array List from one Fragment to another Fragment using Android Studio

我試圖將對象或arrayList從此片段傳遞到另一個。 我使用的是Intent方法,但遇到了同樣的問題,我不知道應該在bundle.putParcelable()方法中放入什么參數。

BlankFragment1 sendData = new BlankFragment1();         
final Series s = new Series(itemName.getText().toString(),            
Integer.parseInt(itemYear.getText().toString())                 
,Integer.parseInt(itemNumberofSeas.getText().toString()),     
dropDown.getSelectedItem().toString());          
Bundle bundle = new Bundle();         
bundle.putParcelable(s);         
sendData.setArguments(bundle);

你可以看下面的例子

片段一

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

為了獲得數據,請使用與Activity中的getExtra相同的getArguments

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

暫無
暫無

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

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