CursorLoader 选择

Posted

技术标签:

【中文标题】CursorLoader 选择【英文标题】:CursorLoader selection 【发布时间】:2016-10-24 07:06:43 【问题描述】:

我设法在我的 android 应用中查看了联系人列表,该列表未排序,因此我想将其从 A 到 Z 排序。

我的 CursorLoader 如下所示:

private static final String[] PROJECTION = 
        ContactsContract.Contacts._ID,
        ContactsContract.Contacts.LOOKUP_KEY,
        Build.VERSION.SDK_INT
                >=Build.VERSION_CODES.HONEYCOMB ?
                ContactsContract.Contacts.DISPLAY_NAME_PRIMARY :
                ContactsContract.Contacts.DISPLAY_NAME
;

private static final String SELECTION =null;
private String[] mSelectionArgs = ;

public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) 

    return new CursorLoader 
            getApplicationContext(),
            ContactsContract.Contacts.CONTENT_URI,
            PROJECTION,
            SELECTION,
            mSelectionArgs,
            null
    

请告知上述选择变量必须采用的参数,例如按字母顺序对联系人进行排序。

【问题讨论】:

【参考方案1】:

将最后一个构造函数参数改为“data ASC”:

new CursorLoader(getActivity(), 
        ContactsContract.Contacts.CONTENT_URI,
        PROJECTION,
        SELECTION,
        mSelectionArgs,
        "data ASC");

其中 data 是应按字母顺序排序的列。

【讨论】:

nope did not work 发出错误。没有这样的列:编译时的数据(代码 1)。当我删除“数据 ASC”并放回 null 时,它运行良好。 @the_big_blackbox 要按字母顺序排序的列的名称是什么? 嗨 alexios 这是 display_name 列,我已经更新了上面的投影变量。 @the_big_blackbox 你能试试我更新的答案吗?这行得通吗? 嗨 alexios 抱歉回复晚了,我正忙于应用程序的其他部分。非常感谢它确实有效

以上是关于CursorLoader 选择的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cursor Loader 选择 ListView 中的第一项

使用 EXTRA_ADDRESS_BOOK_INDEX 支持 CursorLoader

CursorLoader 选择

Loader详解

Xamarin Android,使用带有选择和选择参数的 CursorLoader 获取联系人手机号码

应该使用 Loaders 来访问 Web 服务吗?