2014-07-08 99 views
0

嗨我創建了一個數據庫並以列表視圖顯示內容。我需要顯示從最後到第一個記錄的內容。這裏是我的代碼:如何在Android中以相反順序顯示陣列

Cursor c = db.rawQuery("select * from TABLE", null); 

String[] array = new String[c.getCount()]; 
int i = c.getCount(); 
if (c.moveToLast()) 
{ 
    do 
    { 
     String uname = c.getString(c.getColumnIndex("product_name"));    
     array[i] = uname; 
     i--; 
    } 
    while (c.moveToPrevious()) ; 
} 

我已經將列「product_name」存儲在一個字符串數組中。爲了以相反的順序打印這個列,這是我試過的代碼。應用程序不幸停止誰能說我哪裏錯了?

+0

這是Java嗎? C#?你需要用你正在使用的語言來標記你的問題。 – jwodder

+0

它在Android .. – user3688536

+1

Android不是一種編程語言;這是一個操作系統。在詢問與代碼相關的問題時,您需要包含語言標記(Java,C#或適用於您所用語言的其他標記)。如果您無法命名該語言,則可能尚未準備好使用它開始編程。 –

回答

0

下次您發佈到Stackoverflow時,請包含調試信息(堆棧跟蹤等)。也就是說,看起來你是在一個糟糕的索引處訪問你的字符串。

Cursor c = db.rawQuery("select * from TABLE", null); 

String[] array = new String[c.getCount()]; 
//Start i at c.getCount() - 1, indices are zero based. 
int i = c.getCount() - 1; 
if (c.moveToLast()) 
{ 
    do 
    { 
     String uname = c.getString(c.getColumnIndex("product_name"));    
     array[i] = uname; 
     i--; 
    } 
    while (c.moveToPrevious()) ; 
} 
+1

非常感謝,它的工作.. – user3688536

+0

不客氣! –

0

根據您想要如何對物品進行分類,您可以使用ORDER BY。 假設您想要根據您可以使用的編號ORDER BY id DESC訂購從最後到第一個的物品,這將按降序排列所有物品。然後,您可以像平常一樣遍歷它們。