ViewPager,ActionBar,Fragment--通讯录

一.添加ActionBar的标签,并实现接口ActionBar.TabListener来监听ActionBar

二.假设有三个标签对应三个ViewPager,每个ViewPager又对应一个Fragment

     1).自定义一个类继承Fragment类

     2).在onCreateView()方法中获取碎片所对应的layout所对应的的Vie并作为返回值返回

     3).final FragmentManager fragmentManager = getFragmentManager();        //获取碎片管理器的对象
         final FragmentTransaction transaction = fragmentManager .beginTransaction();

         f = fragmentManager.findFragmentByTag(FAVORITE_TAG);               //获取以FAVORITE_TAG为标签添加到栈中的碎片
     4).如果原先已经以这个标签添加碎片的栈中, 碎片直接被取出

     5).如果f == null 证明没有创建过碎片,那么要new一个碎片对象,同时通过transaction.add()把碎片添加到ViewPager

     6).实现接口ViewPager.OnPageChangeListener,去监听ViewPager是否切换;如果切换ActionBar标签也跟着切换

                ---->Tab标签切换时通过switch语句为依据判断要显示那个Fragment,如:

                                 hideFragment(ft, mContextMenuFragment);  

                                 hideFragment(ft, mCursorFragment);  

                                 showFragment(ft, mArrayFragment);  

 

     7).自定一个类去继承PagerAdapter,指引页面数据适配;适配过程中show()方法显示默认显示的Fragment

                                                                                                                                                                                                                                     

三.数据来源问题分析:(以一个碎片为例子)

PeopleActivity.java
    --->创建ContactTileListFragment()对象时回去执行方法onCreateLoader()该方法返回一个CursorLoader对象,
    --->返回时执行:ContactTileLoaderFactory.createStarredLoader()方法、
    --->在方法返回值创建一个new CursorLoader(context, Contacts.CONTENT_URI, COLUMNS,Contacts.STARRED + "=?", new String[]{"1"}, Contacts.DISPLAY_NAME + " ASC")对象
    --->去到CursorLoader.java下,推测创建对象时会执行loadInBackground()方法
    --->执行getContext().getContentResolver().query(mUri, mProjection, mSelection,mSelectionArgs, mSortOrder);返回一个Cursor
    
    
    --->上面获得Cursor会以参数的形式传入onLoadFinished()方法中
    --->mAdapter.setContactCursor(data)方法把获得的Cursor传给适配器,ListView就可以显示联系人的信息了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值