今天遇到的activity和fragment的问题

亓斌哥哥 发布于 2014/10/06 22:29
阅读 2K+
收藏 0

现在是这样:

我在activity里做逻辑,要通知fragment更新ui。

问题出了:

1、我直接在activity里更新的话,可以现在该fragment还没初始化,里面的组件会出现空指针。

2、如果我在fragment里调用activity的方法去获取数据的话,可能现在数据还没生成。

我想到的一个办法是在activity设置一个boolean类型的变量,表示:该fragment是否正在显示,如果正在显示,则做完逻辑去更新,这个变量是public,我在fragment里改变他的值。

不知道还有没有好的办法。

加载中
0
苦辛味
苦辛味
官方应该给了不少用fragment的例子。在fragment里面声明某个接口,并声明一个成员变量,对应的Activity实现相应的接口。在fragment的attach事件发生时将Activity绑定为上面的成员变量。在Activity有事件发生时只要调用刚才实现的fragment接口事件即可。
亓斌哥哥
亓斌哥哥
回复 @苦辛味 : 我现在手工调用setUserVisibleHint试试
苦辛味
苦辛味
回复 @亓斌哥哥 : 没具体场景没法说,我是不会让Activity跟Fragment两个耦合得那么紧,还要Activity准备好数据,还不如直接fragment做逻辑,这样子的分工意义不大。真有这种需求,我也不纠结直接用otto来做事件总线,省心。
亓斌哥哥
亓斌哥哥
回调的方法就是我出现的二个问题。
0
ClassNotFound
ClassNotFound
你需要了解一下观察者模式
金贞花
金贞花
树哥
技术小黑
技术小黑
观察者模式,我觉得我得去研究下。
0
卫武
卫武
这个数据是fragment才会用到的吗?能不能让它自己完成逻辑计算获取。 第二个思路,用handler在fragment显示完成以后,通知activity开始做逻辑计算,并且更新fragment
返回顶部
顶部