(转)SimpleCursorAdapter修改数据前端显示

 众所周知,用SimpCursorAdapter可以很方便的把数据库中的数据绑定到前台显示,但是有时候数据库中取出的数据,并不是我们要直接显示的数据,而是想稍作修改再表示出来,比如时间在数据库中一般是以毫秒(milisecond)显示,但此时你需要的数据可能是采用时分秒的形式表示的,那么此时怎么办呢。

    也许你会采用自定义一个继承自cursorAdapter 的适配器,然后重写。不错,这是个不错的方法,很原始,也很实用。但这里还有另一种比较简单的方法。

 private SimpleCursorAdapter.ViewBinder viewBinder=new SimpleCursorAdapter.ViewBinder() {     
//创建一个viewBinder,创建了viewBinder就必须要重载setViewValue这个方法
  
  @Override
  public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
   // TODO Auto-generated method stub
   if(cursor.getColumnIndex("duration")==columnIndex){    //duration为数据库中对应的属性列
    TextView tv=(TextView)view;
    tv.setText(""+(cursor.getInt(columnIndex)/1000);  //将数据库中的数据除以1000以后在显示
    return true;
   }
   return false;
  }
 };
simpleCursorAdapter.setViewBinder(viewBinder);

其原理就是:

对应于

SimpleCursorAdapter (Context context, 
                int layout, 
                Cursor c, 
                String[] from, 
                int[] to)

view就是你SimpleCursorAdapter里面传入的  String[] from 资源,cursor就是你的数据集c,columnIndex就是当前正在进行匹配的列。如果你cursor.getColumnIndex("duration")这列需要进行数据转换等操作,则在setViewValue内进行转换,则返回true

其他列匹配时则没进行操作,返回false
--------------------- 
作者:朝朝之花夕夕来拾 
来源:CSDN 
原文:https://blog.csdn.net/dnfchan/article/details/6826860 
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值