如何使用一组字符串数组

时间:2015-10-21 10:31:00

标签: java android arrays string

我有一组字符串:

"1,2,5,6,9,17,24"

,每个都是“用户”表的用户ID。

如何从一个表中获取多行数据,其中userID是String中指定的那些?

我的建议是将字符串拆分为子字符串,并for循环dbhelper中的每个ID,但我不知道这样做。

以下是我Activity的代码:

private void loadChatData() {
    String GroupName = Groupname;
    String participantID = dbHelper.getParticipantID(GroupName);
    participants = dbHelper.getParticipantList(participantID);
    madapter = new FriendListByGridAdapter(GroupinformationActivity.this, participants);
    groupdetailsdelist.setAdapter(madapter);
    madapter.notifyDataSetChanged();
}

participantID ID 的输出为“1,2,5,6,9,17,24”。

以下是DBHelpers中方法的代码:

  public List<Friend> getParticipantList(String participantID) {
      openForWrite();
      List<Friend> list = new ArrayList<Friend>();
      String selectQuery ="SELECT "
            + KEY_FRIEND_NAME + ","
            + KEY_PICTURE
            + " FROM "
            + TABLE_FRIEND
            + " WHERE "
            + KEY_FRIEND_ID + " = "
            + "'"+ participantID + "'";

    Cursor cursor = db.rawQuery(selectQuery, new String[]{});

    if (cursor.moveToFirst()) {

        do {
            Friend temp = new Friend();
            temp.setFriendpicture(cursor.getString(cursor.getColumnIndex(KEY_PICTURE)));
            temp.setFriend_name(cursor.getString(cursor.getColumnIndex(KEY_FRIEND_NAME)));

            list.add(temp);
        } while (cursor.moveToNext());
    }

    // closing connection
    cursor.close();
    db.close();

    Log.d("friend list","" + list.size());
    return list;
}

我只想让所有friendNamepicturepath显示在对应于字符串中的listview的{​​{1}}中。

以下是我的“朋友”表的示例: Table_Friend

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您想要在1个查询中获取所有ID。所以你可以创建一个简单的sql,例如:

"SELECT * FROM TABLE_FRIEND WHERE KEY_FRIEND_ID in (participantID)";

然后使用:

db.rawQuery(sql,null);

答案 1 :(得分:0)

这可能会对您有所帮助:

String participentIDArray[] = participentID.split(",");
List<Friend> list = new ArrayList<Friend>();
for(int i = 0; i < participentIDArray.length; i++) {
    list.addAll(getDataFromDatabase(participentIDArray[i]));
}
madapter = new FriendListByGridAdapter(GroupinformationActivity.this, list);
groupdetailsdelist.setAdapter(madapter);
madapter.notifyDataSetChanged();

基于participentID从数据库获取数据的方法:

public ArrayList<Friend> getDataFromDatabase() {
    List<Friend> list = new ArrayList<Friend>();
    // Add your code to get data from database
    return list;
}