【问题标题】:How to select a specified rows from cursor?如何从光标中选择指定的行?
【发布时间】:2017-08-26 17:28:45
【问题描述】:

我在 Android 上工作,我的目的是过滤掉我的光标。游标来自数据库,它有一些行。现在我想通过使用 id 列从游标中跳过一些行,并将剩余的行作为游标传递给 listview 适配器。

我的代码就像检查行 id 是否等于 filtercursor 行 id 然后必须从当前光标中跳过该行。

代码:

  Cursor c = getActivity().getContentResolver().query(
            Provider.CONTENT_URI_DINERS, null,
            DinerColumns.COL_RESERVATION_FROM , null, null);


   c.moveToFirst();
    do{
        String dinerId = c.getString(c.getColumnIndex(DinerColumns.COL_DIN_ID));
        if(isSeatedDiner(dinerId)){

        }

    }while(c.moveToNext());

   private boolean isSeatedDiner(String dinerID){
        Cursor cursor = getActivity().getContentResolver().query(
                    Provider.CONTENT_URI_SEATED,
                    new String[] {"COUNT(*)"  },SeatedDinerColumns.COL_DINE_ID +"="+dinerID , null,
                    null);

        if(cursor.moveToFirst()){
                do
                {
                    String newId =  cursor.getString(cursor.getColumnIndex(SeatedDinerColumns.COL_DINE_ID));
                    if(Integer.parseInt(dinerID)==Integer.parseInt(newId))
                    {
                        return true;
                    }
                }while(cursor.moveToNext());
        }
        return false;
    }

【问题讨论】:

    标签: android cursor android-contentprovider


    【解决方案1】:

    您可以在查询数据库时过滤数据。
    或者——Filter rows from Cursor so they don't show up in ListView

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-29
      • 2023-02-13
      • 1970-01-01
      • 2015-01-28
      相关资源
      最近更新 更多