一个Activity中多个Fragment的切换
经常会遇到在一个activity界面上布局多个fragment,但是如何从一个fragment跳转到另一个fragment呢?今天在做项目中恰好遇到这样的问题,点击首页fragment的更多店铺,会切换到店铺的fragment,处理的步骤如下:
1、在一个fragment1中定义一个接口:
/** * 定义地接口,用于fragment和activity之间的数据传递 */ public interface onClickShopListner{ public void setOnClickShopListner(int index); }
2、重写fragment的onAttach方法,Fragment第一次附属于Activity时调用,在onCreate之前调用:
@Override public void onAttach(Activity activity) { super.onAttach(activity); mListener = (onClickShopListner) activity; }
3、在触发事件的地方给调用接口,给其设置参数:
mListener.setOnClickShopListner(1);
4、让当前fragment所在的activity实现此接口。
5、在实现接口的方法设置要跳转的的fragment2,此时运行点击fragment中对应控件就可以实现跳转显示另一个activity了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!
相关推荐
-
Android中Fragment与Activity的生命周期对比
Fragment必须是依存于Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期.官网这张图很好的说明了俩者的关系: 可以看到Fragment比Activity多了几个额外的生命周期回调函数: onAttach(Activity); //当Activity与Fragment发生关联时调用 onCreateView(LayoutInflater,ViewGroup,Bundle); //创建该Fragment的视图 onActivityCreate(bun
-
Activity/Fragment结束时处理异步回调的解决方案
头疼的IllegalArgumentException 在Android开发的过程中,涉及到与UI相关的操作只能在主线程执行,否则就会抛出以下异常: android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 当然这属于基本常识,也不是本文讨论的重点,但后续的所有讨论都围绕这一基本常识进行.在开发A
-
Android开发 Activity和Fragment详解
1.Activity的生命周期 1)多个Activity组成Activity栈,当前活动位于栈顶.我们先来看看各种Activity基类的类图: 当Activity类定义出来之后,这个Activity何时被实例化.它所包含的方法何时被调用,这些都不是由开发者所决定的,都应该由Android系统来决定. 下面我们来看一下Activity的生命周期: 2.Activity的用法 1)启动.关闭Activity // 首先需要创建启动的Activity对应的Intent Intent intent =
-
Android 管理Activity中的fragments
FragmentManager 为了管理Activity中的fragments,需要使用FragmentManager. 为了得到它,需要调用Activity中的getFragmentManager()方法. 因为FragmentManager的API是在Android 3.0,也即API level 11开始引入的,所以对于之前的版本,需要使用support library中的FragmentActivity,并且使用getSupportFragmentManager()方法. 用Fragme
-
Android基础之Fragment与Activity交互详解
今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起.下面我们看看Fragment跟Activity的关系. 1.为Activity创建事件回调方法在一些情况下, 你可能需要一个fragment与activity分享事件. 一个好的方法是在fragment中定义一个回调的interface, 并要求宿主activity实现它.当activity通过interfa
-
Android中fragment与activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<详解Android中Fragment的两种创建方式>,就如何创建Fragment混合布局做了详细的分析,今天就来详细说道说道Fragment与宿主Activity之间是如何实现数据交互的. 我们可以这样理解,宿主Activity中的Fragment之间要实现信息交互,就必须通过宿主Activity,Fragment之间是不可能直接实现信息交互的. Fragmen
-
一个Activity中多个Fragment的切换
经常会遇到在一个activity界面上布局多个fragment,但是如何从一个fragment跳转到另一个fragment呢?今天在做项目中恰好遇到这样的问题,点击首页fragment的更多店铺,会切换到店铺的fragment,处理的步骤如下: 1.在一个fragment1中定义一个接口: /** * 定义地接口,用于fragment和activity之间的数据传递 */ public interface onClickShopListner{ public void setOnClickSho
-
一个Activity中多个Fragment实现沉浸式状态栏的解决方法
项目中遇到一个问题:一个Activity有多个Fragment,每个Fragment的沉浸式状态栏不一样,有的是红色,有的是黑色,有的是一张图片(图片的一部分在状态栏中显示),并且要要兼顾虚拟按键(常说的导航栏)遮盖住布局导致自己布局中的某些按钮功能被虚拟按键拦截的问题.网上没有找到完全符合的解决方案,现在说一下我自己的思路,因为自己知识有限,不知道有没有更好的方法,希望对一些人能有帮助.思路如下: 要解决某些型号的手机导航栏遮盖布局的问题,一般是在xml的根布局上加上属性: <span sty
-
Android基础之使用Fragment控制切换多个页面
今天讲解一下Fragment的控制,主要是切换View和页面替换等操作.还有就是如何获取Fragment的管理对象,以及与Activity的通信方式.1.管理Fragment要在activity中管理fragment,需要使用FragmentManager. 通过调用activity的getFragmentManager()取得它的实例. •可以通过FragmentManager做一些事情, 包括: 使用findFragmentById()(用于在activity layout中提供一个UI的f
-
Android中点击按钮启动另一个Activity及Activity之间传值问题
场景 点击第一个Activity中的按钮,启动第二个Activity,关闭第二个Activity,返回到第一个Activity. 在第一个Activity中给第二个Activity传递值,第二个Activity中获取并显示. 打开第二个Activity Activity传值 实现 启动另一个Activity 在第一个Activity中的按钮的点击事件中 Button secondActivityButton = (Button)findViewById(R.id.secondActivity);
-
Android中Fragment相互切换间不被回收的实现方法
前言 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的.难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊.Fragment的出现就是为了解决这样的问题. 如今市面上的应用基本上都是单Activity+多Fragment实现的了,而这类APP都有在相互切换时不被回收,即切换回原来的Fragment时还是原先的状态,这就是这里要实现的了. 这里使用F
-
Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能的方法
本文实例讲述了Android开发使用Activity嵌套多个Fragment实现横竖屏切换功能的方法.分享给大家供大家参考,具体如下: 一.上图 二.需求 近期项目遇到个横竖屏切换的问题,较为复杂,在此记之. 1.Activity中竖屏嵌套3个Fragment,本文简称竖屏FP1,FP2,FP3. 2.其中竖屏FP1与FP2可以切换为横屏的FL1,FL2,即竖屏FP1切换到对应的横屏FL1,竖屏FP2对应切换到横屏FL2. 3.FP3不允许横竖屏切换. 4.竖屏FP1,FP2,FP3用ViewP
-
Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法
本文实例讲述了Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法.分享给大家供大家参考,具体如下: 做Android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表. 想了想,找了两种方式 方法一:通过声明要刷新的activity(FriendActivity)为静态变量,然后在一个activity(SessionActivity)中直接调用刷新
-
Android中调用另一个Activity并返回结果(选择头像功能为例)
场景 Android中点击按钮启动另一个Activity以及Activity之间传值: https://www.jb51.net/article/178218.htm 在上面启动Activity和传值之后,怎样获取Acitvity的返回值.下面示例实现点击选择头像按钮,跳转到头像显示Activity,并将选择的图片的索引返回,在MainActivity中获取后设置头像. 效果 注: 实现 首先是主页面MainActivity的布局,添加一个选择头像按钮和一个ImageView用来显示头像. <?
-
Android App中ViewPager与Fragment结合的一些问题解决
在了解ViewPager的工作原理之前,先回顾ListView的工作原理: ListView只有在需要显示某些列表项时,它才会去申请可用的视图对象:如果为所有的列表项数据创建视图对象,会浪费内存: ListView找谁去申请视图对象呢? 答案是adapter.adapter是一个控制器对象,负责从模型层获取数据,创建并填充必要的视图对象,将准备好的视图对象返回给ListView: 首先,通过调用adapter的getCount()方法,ListView询问数组列表中包含多少个对象(为避免出现数组
随机推荐
- ASP.NET中验证控件的使用方法
- Java正则表达式入门基础篇(新手必看)
- AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
- ExtJS4中使用mixins实现多继承示例
- .NET 水晶报表使用代码
- 解析如何使用Zend Framework 连接数据库
- MySQL大内存配置方案 如my-medium.ini、my-huge.ini等
- php编写批量生成不重复的卡号密码代码
- 超强推荐的js编程中的简洁写法收集
- Linux中为php配置伪静态
- PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
- CMD命令行高级教程精选合编合集
- Sql Server中REPLACE函数的使用
- jquery 动态创建元素的方式介绍及应用
- 纯JS图片批量预加载技术代码
- 在Django中使用Sitemap的方法讲解
- Android 8.0 读取内部和外部存储以及外置SDcard的方法
- 解决cordova+vue 项目打包成APK应用遇到的问题
- Node4-5静态资源服务器实战以及优化压缩文件实例内容
- c#多线程程序设计实例方法