FragmentPagerAdapter 遇到的问题

来源:互联网 发布:网络用语whf什么意思 编辑:程序博客网 时间:2024/06/06 02:18
目的:  当处于联系人界面,点击查询,在联系人表里查数据,显示到界面。
当处于通话记录界面,点击查询,会在通话记录查询联系人,显示到界面(同一个人多个时间)。




本来的做法: 
因为两者的处理方式相同,我写了一个接口。所以在 主目界面设置了监听方法,分别在 联系人的Fragment和通话记录的Fragment,里监听。
因为查询的时候,是由用户输入的内容,所以我在写接口方法的时候附加的一个String参数,作为内容进行传递。




问题来了:
两个 Fragment,都监听了同一个 对象。当点击查询,发送了用户输入的内容,但是,两个监听,发到到了哪一个呢?




初步解决思路:
在MyFragmentPagerAdapter 中定义了一个Stu来记录状态,在getItem 中分别设置了 setStu(LINKER); 。
   在主页面的监听方法setOnQueryListListenter(O o)中也做了判断,当处于联系界面的时候,定义一个linkQueryListListenter监听对象,当处通话记录时,也新定义了一个监听对象。
   在点击查询的时候,再进行判断一次,看看处于哪个界面,处理对应的事件。
   
   通过实践发现此方法不可行。
   
   
   说明在MyFragmentPagerAdapter 中getItem () 那样设置,并不能判断出当前处于哪个界面。
   
   
   
核心问题:
当我要处理两个界面相同操作,结果不同的时候,就会出现问题!!!(显示所有:同样无法判断要显示哪个界面的所有信息)
   如何快速的获取到当前正在操作的界面。
   并且,后续可能出现的问题是:需要快速的切换Fragment,以及每个表的数据更新/获取。




解决办法:
通话记录不做查询。
统一查询,只要点击查询,都是在联系人界面查询。(处理方式:去掉Callog的监听)
     
     靠,问题又来了。当我处于通话记录的时候点击查询,界面会切换过来吗?

实践结果:会查询到,但  是在联系人的界面,界面不会切换。







处理过程的大问题:
   来回的数据传输。








在onresume()里面写了更新数据的,然后退出这个程序在进入,该页面会跳出。




长按事件的返回值。 true 处理结束。 false,系统继续处理。



0 0