我对使用内容提供商有点陌生。我想知道如何从内容提供商那里获取特定行?
例如,如何获得提供者的第一行?
这是我尝试过的,但是不起作用:
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/