• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android CursorAdapter的使用,cursoradapter使用

Android CursorAdapter的使用,cursoradapter使用

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android cursor使用,android cursor,android cursor用法,android cursor遍历,android cursor属性等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android CursorAdapter的使用,cursoradapter使用


CursorAdapter继承于BaseAdapter,为Cursor和ListView连接提供了桥梁。

首先看一下CursorAdapter的部分源码:

/** 
    * @see android.widget.ListAdapter# getView(int, View, ViewGroup) 
    */  
   public View getView( int position, View convertView, ViewGroup parent) {  
       if (!mDataValid) {  
           throw new IllegalStateException( "this should only be called when the cursor is valid");  
       }  
       if (!mCursor.moveToPosition(position)) {  
           throw new IllegalStateException( "couldn't move cursor to position " + position);  
       }  
       View v;  
       if (convertView == null) {  
           v = newView( mContext, mCursor, parent);  
       } else {  
           v = convertView;  
       }  
       bindView(v, mContext, mCursor);  
       return v;  
   }  

可以看出CursorAdapter是继承了BaseAdapter后覆盖它的getView方法在getView方法中调用了newView和bindView方法,我们在写CursorAdapter时必须实现它的两个方法。

public abstract View newView (Context context, Cursor cursor, ViewGroup parent);  
  
public abstract void bindView(View view, Context context, Cursor cursor);  
从源码可以看出:
  • newView ( ):并不是每次都被调用的,它只在实例化的时候调用,数据增加的时候也会调用,但是在重绘(比如修改条目里的TextView的内容)的时候不会被调用
  • bindView ( ):从代码中可以看出在绘制Item之前一定会调用bindView方法它在重绘的时候也同样被调用

继承CursorAdapter的示例部分代码:

@Override  
     public View newView(Context context, Cursor cursor, ViewGroup parent) {  
             
           ViewHolder viewHolder= new ViewHolder();  
           LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE );  
           View view=inflater.inflate(R.layout.item_contacts ,parent,false);  
             
           viewHolder. tv_name=(TextView) view.findViewById(R.id.tv_showusername );  
           viewHolder. tv_phonenumber=(TextView) view.findViewById(R.id.tv_showusernumber );  
           view.setTag(viewHolder);  
           Log. i("cursor" ,"newView=" +view);  
            return view;  
     }  
       
     @Override  
     public void bindView(View view, Context context, Cursor cursor) {  
           Log. i("cursor" ,"bindView=" +view);  
           ViewHolder viewHolder=(ViewHolder) view.getTag();  
       //从数据库中查询姓名字段  
           String name=cursor.getString(cursor.getColumnIndex(PersonInfo.NAME));  
       //从数据库中查询电话字段  
           String phoneNumber=cursor.getString(cursor.getColumnIndex(PersonInfo.PHONENUMBER));  
             
           viewHolder. tv_name.setText(name);  
           viewHolder. tv_phonenumber.setText(phoneNumber);  
     }  

缺点:

总之,CursorAdapter这种方式并不是很好的设计典范。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android CursorAdapter的使用,cursoradapter使用

相关文章

  • 2017-05-26MaterialRefreshLayout,swiperefreshlayout
  • 2017-05-26Java Web 开发填坑记- 如何正确的下载 Eclipse,javaeclipse
  • 2017-05-222.2.3 TableLayout(表格布局)
  • 2017-05-26Android UI ListView的使用,androidlistview
  • 2017-08-23Android下文件的压缩和解压(Zip格式)
  • 2017-05-26状态栏一体化及其带来的软键盘自适应问题
  • 2017-05-26android手机登录时遇到“QQ安全登录发现病毒”解决,android手机
  • 2017-05-26Android,androidstudio
  • 2017-05-227.5.3 Android 4.4后WebView的一些注意事项
  • 2017-05-26HTPC+NAS+ROUTER(wifi)的实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android 中间人攻击
    • android studio上的基本动画实现(第一篇),androidstudio
    • GridView嵌套在ScrollView里只有一行的问题,gridviewscrollview
    • 一款面试复习应用源码,面试复习源码
    • Android 操作数据库的框架——greenDAO的学习
    • 编译器开发系列--Ocelot语言7.中间代码,编译器--ocelot
    • Android常用学习网站,android
    • Android中View自定义XML属性详解以及R.attr与R.styleable的区别
    • Android JDK配置使支持Gradle更新,Maven安装,gradlemaven
    • Android6.0权限管理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有