2011-01-05 33 views
0

我試圖將數據庫的內容檢索到List視圖,但無法顯示它們。由於遊標只包含一個項目,不知道爲什麼,但它沒有顯示在列表中。數據庫光標始終只檢索一行

我還注意到ListActivity參考上developer.android但未能解決問題。有人能幫助我!

我張貼我的代碼:

setContentView(R.layout.simple_list_item_1);  
System.out.println("Creating db");  

mDatabase = openOrCreateDatabase(Helper.DATABASE_NAME, 
        SQLiteDatabase.CREATE_IF_NECESSARY, null);  
System.out.println("Created db"); 

//String[] args= {Long.toString(id)}; 

mDatabase.execSQL(Helper.CREATE_TABLE);  
System.out.println("Creating table"); 

addContents(); 
addContents(); 
addContents(); 

String[] fields = {Helper.ID, Helper.DESC, Helper.DOSAGE}; 

calendarData = mDatabase.query(Helper.TABLE_NAME, fields, null, null, 
         Helper.DESC, null, null); 

int count = calendarData.getCount();  
System.out.println("Queried db: "+count); 

startManagingCursor(calendarData); 

int[] fieldTextViews = {android.R.id.text1,android.R.id.text2}; 

ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item, 
           calendarData, fields, fieldTextViews); 
setListAdapter(adapter); 
+0

請格式化您的帖子..所以這可能是可以理解的 – nimi 2011-01-05 10:13:12

回答

0

糖果 的System.out.println沒有在Android作品Log.d(TAG,msg)更換看到DDMS輸出。

+0

它適用於我。我可以在logcat中看到輸出。任何方式都不是問題。可以告訴我,查詢是否有任何問題來檢索所有記錄? – 2011-01-05 10:54:44

+0

@sweety addContents()中的數據插入是否成功? – 100rabh 2011-01-05 11:12:26

+0

是的,我在數據庫中有26條記錄。 – 2011-01-05 14:34:15

0

沒有看到什麼addContents()不,我們不知道是什麼數據庫的內容..即你試圖插入相同的記錄3次,但第二個兩次嘗試不插由於衝突?

但是由於您似乎正在使用seven-parameter version of SQLiteDatabase.query(),因此您將「DESC」常量作爲groupBy參數傳遞。這可以解釋爲什麼你只能得到一個結果。

大概要orderBy該列的名字呢?

+0

DESC表示description.Helper類有字符串desc。在addContents方法中,我添加了26次相同的記錄。這是問題嗎?因爲它有多個具有相同值的記錄? – 2011-01-05 14:35:30

+0

是的,但爲什麼字符串「DESC」在那裏呢?目前,您正在導致發生一個SQL GROUP BY,而不是'ORDER BY'(這是我認爲你想要的)。你有26次同樣的記錄是爲什麼,當你分組時,你只能看到一個結果。 – 2011-01-05 17:15:36