2

私はAndroidに取り組んでおり、カーソルを除外することを目的としています。カーソルはデータベースから来ており、いくつかの行があります。ここで、id列を使用してカーソルからいくつかの行をスキップし、残りの行をカーソルとしてリストビューアダプタに渡します。

私のコードは、行IDがfiltercursorの行IDと等しいことを確認してから、presentcursorから行をスキップする必要があるようなものです。

コード:

  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;
    }
4

1 に答える 1

1

データベースのクエリ中にデータをフィルタリングできます。
または - Cursor から行をフィルタリングして、ListView に表示されないようにします。

于 2013-01-30T07:04:01.033 に答える