限制Cursor查询中的行数

时间:2014-01-07 01:42:53

标签: android android-cursoradapter

我需要从Android手机获取联系人。所以我使用这段代码:

Cursor phones = getActivity().getContentResolver().query(Phone.CONTENT_URI,
    new String[] { Phone.NUMBER, Phone.TYPE },
    " DISPLAY_NAME = ?", new String[] { displayName }, null);
while (phones.moveToNext()) {
   //do work here
}

我想告诉光标将响应限制为50,例如“LIMIT 50”。我在哪里将该信息传递给光标?请复制并粘贴我的代码并在那里进行编辑。

3 个答案:

答案 0 :(得分:1)

Android API没有限制,但您可以在代码中应用它:

Cursor phones = getActivity().getContentResolver().query(Phone.CONTENT_URI,
    new String[] { Phone.NUMBER, Phone.TYPE },
    " DISPLAY_NAME = ?", new String[] { displayName }, null);
for (int i = 0; i < 50 && phones.moveToNext(); ++i) {
   // do work here
}
phones.close();

答案 1 :(得分:0)

按ID DESC限制1:

排序
db.query("table", null, "column=?", new String[]{"value"}, null, null, "id DESC", "50");

答案 2 :(得分:0)

如果你有数据库和表名,你可以使用它,但内容提供者的查询语句中没有限制参数。

mDb = new DBHelper (this);

Cursor c = mDB.getReadableDatase().query(
       <Phone_Table_Name>, 
       new String[] { Phone.NUMBER, Phone.TYPE }, 
       "DISPLAY_NAME = ?", 
       new String[] { displayName }, null), 
       null, 
       null, 
       null, 
       "50");