我对使用内容提供商有点陌生。我想知道如何从内容提供商那里获取特定行?

例如,如何获得提供者的第一行?

这是我尝试过的,但是不起作用:

final Cursor cursorConversations = getActivity().getContentResolver()
                .query(CONTENT_URI, null, null, null, null);

Toast.makeText(
        getActivity(),
        cursorConversations.getString(cursorConversations
        .getColumnIndex(Columns.TITLE)),
        Toast.LENGTH_LONG).show();

最佳答案

您只需使用光标移动方法即可:

    cursorConversations.moveToFirst();
    cursorConversations.moveToPosition(0);
    cursorConversations.moveToNext(); // <-- if at beginning position


只是为了使这个答案更加实用,一种流行的技术从一开始就用于遍历光标的行:

    while (cursorConversations.moveToNext()) {
        // do something
    }


因为moveToNext()方法(以及其他move方法)返回一个布尔值,所以循环将在到达最后一行时退出,无法再移至下一行。有效和容易在眼睛上。还有一个提示:光标从-1索引开始,在基于零的查询索引的第一个位置之前。

关于android - 如何从ContentProvider获取特定行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13682224/

10-13 03:27