2014-02-22 65 views
0

不佳的格式化輸出我從數據庫中讀取到一個ListView有:Android中的ListView

private void showEvents(Cursor cursor) { 
    ArrayList<String[]> eventsList = new ArrayList<String[]>(); 
    cursor.moveToFirst(); 
    while (cursor.moveToNext()) { 
     String[] oneEvent = new String[3]; 
     oneEvent[1] = cursor.getString(1); 
     oneEvent[2] = cursor.getString(2); 
     eventsList.add(oneEvent); 
    } 
    ArrayAdapter<String[]> adapter = new ArrayAdapter<String[]>(this, 
      android.R.layout.simple_list_item_1, eventsList); 
    setListAdapter(adapter); 
} 

輸出是錯位的,但是。例如,一行是 Ljava.lang.String;@b1e01410。當我使用DDMS從模擬器中提取數據庫並查看數據庫時,數據看起來很好,所以這是某種類型的格式錯誤。請幫忙,謝謝。

回答

0

你知道嗎Ljava.lang.String;@b1e01410是什麼?

基本上它的默認輸出爲toString()(從Object),開頭的L表示它是一個數組。這意味着你的問題是行正在接收一個不是單個字符串的數組,並且因爲它是一個非字符串對象,它通過toString「投射」它。

+0

謝謝 - 你能否建議修改代碼來列出字符串,而不是數組?對不起noob問題... – koenbro

+0

你有兩個選擇 - ArrayList 被更改爲ArrayList ,或者爲視圖創建自定義佈局並覆蓋getView以正確顯示陣列中的值 –