安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
2017-02-22 14:02
435 查看
我在开发的时候遇到了这个问题,就是如何在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页面的切换欢迎各位朋友指出文中出现的错误和不足!
实现切换部分:
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页面的切换欢迎各位朋友指出文中出现的错误和不足!
相关文章推荐
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- 安卓在一个活动(Activity)里加载碎片(Fragment)并切换到另一个碎片(Fragment)
- 安卓活动(Activity)和碎片(Fragment)的生命周期
- 如何从fragment中点击一个Button跳到另一个activity
- 怎么通过activity里面的一个按钮跳转到另一个fragment(android FragmentTransaction.replace的用法介绍)
- 一个Activity管理多个Fragment切换
- 一个Activity或者是Fragment中三个Fragment进行切换
- 自学安卓复习基础_之十一(在Activity中加载fragment的页面)
- 【安卓学习】4.碎片(Fragment)实践---一个简单的新闻应用。
- Fragment向另一个Fragment进行传值通过Activity来传递在同一个Activity中
- 在一个activity中不同的fragment中加载百度地图时,百度地图重合叠加覆盖的解决方案
- 安卓activity和fragment之间切换动作--左右滑动的效果
- 关于安卓开发中Activity动画切换效果无效的一个总结
- 一个activity切换到另一个activity的几种方法
- 关于Activity加载Fragment切换Show和Hide重叠问题
- 安卓动画之listView动画,Activity切换动画,Fragment切换动画及LayoutAnimation的使用
- 在主Android Activity中加载Fragment的一般简易方法 ,来模拟一个微信界面。
- 【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别
- 一个Activity中多个Fragment的切换