我有4个片段1,2,3,4。我想从3切换到2,所以新订单将是1,3,2,4。 一切都很好,除了我丢失了我的传递数据,没有错误,只是一个安静的拒绝!大声笑 这是片段代码的一部分:
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this,PageCreator.class.getName())); // 1
fragments.add(Fragment.instantiate(this,PageRecette.class.getName())); // 2
fragments.add(Fragment.instantiate(this,PageArome.class.getName())); // 3
fragments.add(Fragment.instantiate(this,PageUser.class.getName())); // 4
this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
众所周知的传递数据(从2个和3个片段到活动):
@Override
public void onClick(DialogInterface dialog, int id) {
// Passing Datas to MainActivity
Click_status = 0;
mListener.onListItemSelected(item_name, id, Click_status, Fsa.Press_pos);
}
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
try {
mListener = (onListItemSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement onListItemSelectedListener");
}
}
然后在同一个片段中:
public interface onListItemSelectedListener{
public void onListItemSelected(String item_name, int id, int Click_status, int Press_pos);
}
所有这些数据都传递给主要活动
import com.tutos.PageRecette.onListItemSelectedListener; //Passing Datas
import com.tutos.PageArome.onLongClickSelectedListener;
那么方法等...
在片段切换之前,Everythings工作正常 - 数据通过, 然后,如果我改变顺序或片段,我就失去了它们。
fragments.add(Fragment.instantiate(this,PageCreator.class.getName())); // 1
fragments.add(Fragment.instantiate(this,PageArome.class.getName())); // 3
fragments.add(Fragment.instantiate(this,PageRecette.class.getName())); // 2
fragments.add(Fragment.instantiate(this,PageUser.class.getName())); // 4
任何线索?谢谢你的阅读!
答案 0 :(得分:0)
如果此数据在两个或更多片段之间共享,那么您可以将此数据添加到活动中,您可以随时使用
在片段内访问它((Your Activity class name)getActivity())."the getter or setter method"
如果共享访问多个活动,您也可以将它们设为静态。