我对使用内容提供商有点新意。我想知道如何从内容提供商处获取特定的行?
例如,我如何获得提供者的第一行?
这是我尝试的但它不起作用:
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();
答案 0 :(得分:2)
你只需使用光标移动方法ex:
cursorConversations.moveToFirst();
cursorConversations.moveToPosition(0);
cursorConversations.moveToNext(); // <-- if at beginning position
只是为了让这个答案更加丰富,一种流行的技术用于从头开始逐行遍历游标行:
while (cursorConversations.moveToNext()) {
// do something
}
因为moveToNext()
方法(以及其他move
方法)返回一个布尔值,所以循环将在到达最后一行时退出,并且不能再移动到下一行。对眼睛也有效而且容易。还有一个提示:在基于零的查询索引的第一个位置结果之前,光标从-1索引开始。
答案 1 :(得分:2)
使用这样的东西:---
if(cursorConversations.moveToFirst()){
int size=cursorConversations.getCount();
for(int i=0;i<size;i++){
cursorConversations.getString(cursorConversations
.getColumnIndex(Columns.TITLE));
cursorConversations.moveToNext();
}
}
cursorConversations.close();
或
while(cursorConversations.moveTonext())
{
cursorConversations.getString(cursorConversations
.getColumnIndex(Columns.TITLE));
}