Android Studio中使用Fragment遇到的难点

Fragment的使用

分动态和静态的,下面的是动态的,布局文件中有个FrameLayout,使用时替换它。

静态的布局文件中是fragment,属性中加上想要的Fragment,不需要下面的。

Fragment中访问自己Activity里的方法

首先第一种是比较简单的一种访问方法在Fragment中使用getActivity()得到Activity对象,使用该对象访问Activity中的方法。

这种方法简单,易理解,但是却不合理,Fragment是由Activity管理的,这里却在Fragment中直接实例化了一个Activity对象。

第二种方法复杂一点,不好理解。

首先在Fragment中定义一个内部接口,在该接口中定义一个方法(此方法是你想使用的Activity中的方法),然后在该Fragment中封装一个该接口的对象,给它一个set方法。

接着在Activity中实现该接口,并实现该方法。在onCreate()中实例化一个Fragment,并通过set方法将本Activity传给这个Fragment对象(因为前面在Fragment中封装了一个接口对象,在这里Activity实现了那个接口)。

后面就可以在Fragment中使用封装的接口对象来调用Activity中的方法了(这里的ContentFragmentBtn()是在Activity中实现的)。

到这里你以为结束了吗?还没完,还有很重要的一点:

我们需要在Fragment的onAttach()方法中来判断Activity是否实现了内部接口,并将接口对象转化为特定的接口类型。

第二种方法从Fragment向其宿主(Activity)传递数据或请求更新UI时非常有用。通过这种方式,可以确保Fragment和宿主之间有良好的解耦和清晰的通信机制。

以上就是我在学习Fragment时遇到的难点。纯新手,大佬勿喷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值