Android开发学习------实现fragment跳转

在大多数的应用设计中,我们需要实现界面的跳转,如桌面应用程序不同窗体间的跳转、web应用程序不同jsp间的跳转等等,而Android应用的界面跳转,一般是fragment跳转,并不像web应用程序一样简简单单地写个servlet请求就完事,其具体流程稍显复杂:

大体思路

       一般我们的fragment会处于一个activity中,而我们需要跳转到另一个fragment,那么就可以另外创一个activity,比如我做的用户界面,我创了个UserActivity,要在我们已经有的用户个人界面跳转到一个界面(比如是编辑资料),就先从当前的fragment所在的activity跳转到另一个activity,再由另一个activity控制要跳转去的fragment。

具体实现

以个人的一个项目为例:

比如我这里就是底部导航栏中“用户”板块显示的内容,它是在fragment_forth里面,而这个文件和ForthFragment绑定,也就是说这一部分目前属于ForthFragment,而这个fragment属于MainActivity,但是我想让它点击“编辑资料”后跳转到另一个不属于MainActivity的fragment(如果都放到MainActivity,会很冗杂),那么就在相应的鼠标点击事件里面通过intent先让它跳转到另一个叫做UserActivity的地方(还可以带参数,刚好方便我们设定要UserActivity去哪个界面,我这里跳转到edit界面需要的参数是0)

,然后在UserActivity重写onResume方法(什么是onResume方法以及有什么用可以自行CSDN),在这个方法里面通过FragmentTransaction和获取到的id去判断,

,在这里后面需要用到replace方法(表示替代),比如我的activity_user(这时候应用已经从开始我们那个大的activity_main跳转到activity_user了,我所有的用户操作界面都在activity_user中展示),而我的activity_user实际上只有一个viewPager

,它的用处就是在UserActivity中判定完id值并做相应的实例化处理后(这个实例化处理也有讲究,后面说),作为replace方法的第一个参数,表示要被替代掉的部分(也就是最开始啥也没有的显示部分),第二个参数放我们实例化了的fragment,就可以实现跳转效果了(最后别忘了commit,以及onResume方法必须要调用父类方法即“super.onResume()")

 关于上面提到的”实例化“:


还可以看到我这里的fragment实例化是用的相应的类内部设定的一个static方法,这个方法的特殊之处就是可以设定参数(我这里都还只有id一个参数,可以加),这个方法看上去和构造函数有点像,但它主要和intent一起使用,在activity之间传值,但如果使用构造函数传值,在应用程序的横竖状态改变(比如从竖屏变为横屏),应用程序会自动重新加载该界面,从而导致之前的fragment构造方法中的参数丢失(默认使用无参构造),因此使用可以长期保存的bundle进行传值是更为推荐的

 

 

 

 

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值