比如这个帖子,提到了可以过滤数据:http://www.oschina.net/question/234345_40675
但是如果不想要其中某一行满足自己判定的条件而不是从数据库拿的显示,怎么办呢?

解决方案 »

  1.   

    对,但是貌似cursor跟数据库是绑定的,只要修改的话,连同数据库里的数据也会被改变,这不是我想要的
    不需要修改数据库,但是数据库的数据,某些行不能直接用,要处理后才行
    有没有办法?
      

  2.   

    也就是cursor比如拿了500行,实际要显示的只有300行的话,怎么办?
      

  3.   

    把cursor里的数据读出来,把你想要的放到一个list里
      

  4.   

    如果你用listview的话,就用list作为数据源
      

  5.   

    是listview,原来用的cursoradapter 已经复写了bindview等方法,
    现在不需要显示其中某些行,
    如果再写一个新的adapter,感觉代码重复,而且原来也不能扔掉,在其他listview里还需要用
      

  6.   

    你是要cursor先筛选好数据库里的数据再拿出来吗
      

  7.   


    不能用where语句实现吗?比如像Select * From TableXY Where _id < 5;这种的?
      

  8.   

    那你试试这样:private static final Uri SMS_URI = Uri.parse("content://sms");
    private static final String[] COLUMNS = new String[] {"date", "address", "body", "type"};
    private static final String WHERE = "type = 2";
    private static final String ORDER = "date DESC";// ...
    ContentResolver cr = getContentResolver();
    Cursor cursor = cr.query(SMS_URI, COLUMNS, WHERE + " AND date > " +
                timeLastChecked, null, ORDER);
    这样你可以查询content://sms,只返回你要的COLUMNS。NULL代替在查询中的“?”