ListView using two cursoradapters?

前端 未结 4 669
陌清茗
陌清茗 2020-12-08 21:54

I have some code which executes two queries against a database and returns two cursor objects. Is there any way that I can combine these two cursors so that all the L

相关标签:
4条回答
  • 2020-12-08 22:39

    There's MergeCursor for that (if there's no way to join tables).

    0 讨论(0)
  • 2020-12-08 22:39

    FYI - An example of using MergeCursor()

    c = Cursor containing Contacts columns from Contacts.CONTENT_URI

    private Cursor mergeCursorSubset(Cursor c) {
    
        int userMobile = ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE,
            workMobile = ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE;
    
        String storedNumber = ContactsContract.CommonDataKinds.Phone.NUMBER,
                displayName =ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
                numberType = ContactsContract.CommonDataKinds.Phone.TYPE,
                contactKey = ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
                whereClausePre = contactKey+" = '",
                whereClausePost = "AND ("+numberType+" = '"+userMobile+"' OR "+numberType+" = '"+workMobile+"'";
    
    
        Uri lookupUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;;
    
        Cursor [] m = new Cursor[c.getCount()]; 
    
        if (c.moveToFirst())
            for (int k = 0; k<c.getCount();k++){            
                //Find the mobile numbers
                Cursor u = this.getContentResolver().query(lookupUri,
                                                        new String[]{displayName, storedNumber, numberType}
                                                        , whereClausePre+c.getString(c.getColumnIndex(Contacts.LOOKUP_KEY))+"') " 
                                                            + whereClausePost, null, null);
                int i = 0;
                if (u.moveToFirst())
                    m[i++] = u;
    
            } //for Each key
    
        return new MergeCursor(m);
    
    }
    
    0 讨论(0)
  • 2020-12-08 22:39

    Check out MatrixCursor.

    Maybe this will help you also Android - Database Table Join

    0 讨论(0)
  • 2020-12-08 22:47

    You can also use cwac-merge.

    cwac-merge: Provides the MergeAdapter, a ListAdapter that blends multiple Views or ListAdapters into a single ListAdapter. Use this for section headings, blending multiple sources of data together, etc.

    0 讨论(0)
提交回复
热议问题