2013-04-10 38 views
0

目前我有以下代碼來顯示錶中發件人的電話號碼。如何更新帶有最新消息的ListView

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

這將只顯示發送者的號碼。現在,如何使用listview顯示消息上方的發件人號碼和右側的日期?

我想創建像內置消息傳遞一樣的列表。

我是否需要創建另一個查詢以獲取基於發件人分組的最新記錄?

回答

0

如果您想製作更復雜的ListView,顯示更多數據,您將需要創建自己的自定義適配器類。作爲快速example

Commonsware在這個問題上有一些非常有用的例子。

-1

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