我正從一個Activity1到Activity2接收DataTransferBetweenActivity對象。 Activity2具有ViewPager和ViewPager內我有3個片段。這裏是我的適配器類爲ViewPager將活動中的對象傳遞給ViewPager,然後傳遞給片段
public class MusicPlayerTabAdapter extends FragmentPagerAdapter {
private DataTransferBetweenActivity data;
private String PARCEL_KEY = "data";
public MusicPlayerTabAdapter(FragmentManager fm, DataTransferBetweenActivity data) {
super(fm);
this.data = data;
ArrayList list = data.getSongsList();
Iterator<Song> it = list.iterator();
while(it.hasNext()) {
Log.i("Reached", it.next().getTitle());
}
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
Bundle bundle = new Bundle();
bundle.putParcelable(PARCEL_KEY, data);
NowPlayingFragment nowPlayingFragment = new NowPlayingFragment();
nowPlayingFragment.setArguments(bundle);
return nowPlayingFragment;
case 1:
return new EqualizerFragment();
case 2:
return new LyricsFragment();
}
return null;
}
@Override
public int getCount() {
return 3;
}
}
NowPlayingFragment類中我得到空從getArguments代碼NOW()。建議正確的方法來做到這一點。這裏是我的NowPlayingFragment
代碼public class NowPlayingFragment extends Fragment {
private ArrayList<Song> songsList;
private int position;
private String PARCEL_KEY = "data";
private Bundle bundle = getArguments();
private DataTransferBetweenActivity data = bundle.getParcelable(PARCEL_KEY);
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.nowplaying_layout, container, false);
// songsList = data.getSongsList();
// position = data.getPosition();
if(bundle == null)
Log.i("Received DATA", "HELLO");
return view;
}
}
還有一個建議,我需要的是,我會加入我的活性2 MediaPlayerControls,我想改變這首歌時,我選擇NowPlayingFragment這將是具有的歌曲列表中的歌曲。 建議正確的方法來構建此功能。
你應該調用'getArguments()'在片段 – akash93 2015-01-04 12:43:55