Fragment2 f2 = new Fragment2(); FragmentManager fm = getSupportFragmentManager(); FragmentTransaction tx = fm.beginTransaction(); tx.replace(R.id.fl, f2); //将当前的事务添加到了回退栈 tx.addToBackStack(null); tx.commit();
方式一.Fragment之间的传值:Handler 1.在一个 Fragment里发送消息
Message message = new Message(); message.arg1 = 1; message.obj = "datas"; Fragment2.handler.sendMessage(message);2.在另外一个 Fragment里接收消息
public static Handler handler=new Handler(){ public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.arg1==1){ String data= msg.obj.toString(); }方式二:Fragment之间的传值:接口回调
public interface CallBackListener { void setData(String s); }2.在一个 Fragment里发送消息
callBackListener.setData("添加数据");3.在另一个 Fragment里发送消息
public class MyFragment extends Fragment implements CallBackListeners{ ... public void setData(String data) { Toast.makeText(this,data, Toast.LENGTH_SHORT).show(); } }三.案例实现 在首页选择商品,分别使用Handler和接口把商 品添加到购物车,在购物车Fragment里接受数据 四.多个fragment嵌套
父容器:管理3个fragment. getSupportFragmentManager() 上下文的方法 btn1----->Fragment1 btn2----->Fragment2 btn3----->Fragment3
Fragment1子容器:管理3个fragment. getChildFragmentManager() Fragment的方法 btn4---->fragment4 btn5---->fragment5 btn6---->fragment6
