【问题标题】:Limit number of rows in Cursor query限制游标查询中的行数
【发布时间】:2014-01-07 01:42:53
【问题描述】:

我需要从 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”。我在哪里将该信息传递给光标?请复制并粘贴我的代码并在那里进行编辑。

【问题讨论】:

  • 你试过我的答案了吗?

标签: android android-cursoradapter


【解决方案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();

【讨论】:

    【解决方案2】:

    按 id DESC 限制 1 排序:

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

    【讨论】:

    • 能否请您复制并粘贴我的代码并在那里进行编辑,以便我看看怎么做?
    【解决方案3】:

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

    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");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多