安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
来源:互联网 发布:进程调度算法流程 编辑:程序博客网 时间:2024/05/01 20:40
我在开发的时候遇到了这个问题,就是如何在Activity加载一个Fragment并通过点击Fragment里面的Button切换到其他Fragment,当时我也找了很多资料但感觉不怎么实用最后想了很久终于想到一个方法解决这个问题:也就是通过使用异步(handler)来实现,我们首先在加载Fragment的Activity中写
实现切换部分:
public Handler handler =new Handler(){ @Override public void handleMessage(Message me){ switch (me.what){ case 1: ChuShi(new ChuShi());//加载碎片1 break; case 2: ChuShi(new Qinli());//加载碎片2 break; } } };
被调用的方法:
public void Qiehuan(int a)
{
Message message = new Message();
message.what =a;
handler.sendMessage(message);
}
加载碎片(Fragment)部分:
private void ChuShi(Fragment fragment){//创建待添加的碎片实例
FragmentManager fragmentManager =getSupportFragmentManager();/*获取FragmentManager,在活动中可以直接通过调用getSupportFragmentManager()方法的到*/
FragmentTransaction transaction =fragmentManager.beginTransaction();/*开启一个事务,通过调用beginTransaction()方法开启。
transaction.replace(R.id.fragm,fragment);//向容器添加或替换碎片一般使用replace实现
transaction.commit();//提交事物,调用commit方法来完成
}
Fragment调用Activity里方法实现切换到另一个Fragment:
public void onStart() {
final MainActivity mainActivity = (MainActivity) getActivity();//从Fragment取得Activity实例
imageView.setOnClickListener(new View.OnClickListener(){//图片按钮被按下
@Override
public void onClick(View v){//第一个按钮被按下
CheckBox checkBox =(CheckBox) getView().findViewById(R.id.ch);
if(checkBox.isChecked()){
//选中
mainActivity.Qiehuan(1);//调用Activity的Qiehuan方法实现切换
}
else {
//没选中
mainActivity.Qiehuan(2); } }});
}
思路很简单也就是通过在Activity里面使用handler来实现Fragment页面的切换欢迎各位朋友指出文中出现的错误和不足!
1 0
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- 安卓Fragment 碎片!!!
- 安卓活动(Activity)和碎片(Fragment)的生命周期
- Fragment碎片切换
- Activity与在Android的碎片Fragment
- 安卓开发25:碎片 Fragment使用
- 详解安卓Fragment(碎片化)
- 碎片:Fragment
- 碎片Fragment
- Fragment碎片
- 碎片Fragment
- 碎片Fragment
- 碎片---Fragment
- 碎片(fragment)
- 碎片fragment
- 碎片Fragment
- Fragment碎片
- Fragment---碎片
- HttpClient和HttpURLConnection的区别
- caused by android.system.errnoexception open failed eacces (permission denied)解决方案,安卓6.0(API23)权限问题
- AI学习之路(2):GPU版本的Tensorflow在Windows上安装
- 遍历js对象的元素
- Programming with Libevent epoll
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- GEMM对于深度学习的重要性
- java面向对象编程思想
- Unity结合C++开发服务器实现多人游戏(五)
- 欢迎使用CSDN-markdown编辑器
- 官方下拉刷新控件SwipeRefreshLayout的使用
- _button.enabled = NO 无效
- Struts2系列笔记(7)---Struts2类型转换
- 12 个有效的提高编程技能的方法