0

目前我有以下代码来显示表中发件人的电话号码。

public List<Message> getAllMessages() {
    final String query = "SELECT DISTINCT Sender FROM " + MYDATABASE_TABLE
            + " GROUP BY Sender";
    List<Message> messages = new ArrayList<Message>();

    Cursor cursor = sqLiteDatabase.rawQuery(query, null);

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        Message sender = cursorToMessages(cursor);
        messages.add(sender);
        cursor.moveToNext();
    }
    // Make sure to close the cursor
    cursor.close();
    return messages;
}

然后我使用 ListView 显示结果:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.messages);

    mySQLiteAdapter = new SQLiteAdapter(this);
    mySQLiteAdapter.openToRead();

    List<Message> values = mySQLiteAdapter.getAllMessages();

    ArrayAdapter<Message> adapter = new ArrayAdapter<Message>(this,
            android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);
}

那将只显示发件人的号码。现在,如何使用列表视图在消息上方显示发件人的号码和右侧的日期?

我想创建与内置消息传递相同的列表。

我是否需要创建另一个查询以根据发件人分组获取最新记录?

4

2 回答 2

0

如果您想制作更复杂的 ListView,显示更多数据,您将需要创建自己的自定义适配器类。

作为一个简单的例子

Commonsware 在这个主题上有一些非常有用的例子。

于 2013-04-10T10:56:36.333 回答
-1

adapterObj.notifyDatasetChanged() 方法用最新消息刷新列表视图。

于 2013-04-10T12:49:45.480 回答