2011-01-05 9 views
0

データベースの内容をListビューに取得しようとしていますが、表示できません。カーソルには1つのアイテムしか含まれていないので、理由はわかりませんが、リストには表示されません。データベースカーソルは常に1行しか取得しません

developer.androidでもListActivityの参照を取得しましたが、問題を解決できませんでした。ここ何人かが私を助けることができます!

私は私のコードを掲載しています:

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

答えて

0

をいとう のSystem.out.printlnは、Android上の作品は、DDMSに出力を確認しLog.d(TAG,msg)で、それに代わるものではありません。

+0

それは私のために働く。私はlogcatの出力を見ることができます。どんな方法でも問題はありません。すべてのレコードを取得するためにクエリに問題があると教えてください。 –

+0

@sweety addContents()のデータ挿入は成功していますか? – 100rabh

+0

はいデータベースに26レコードあります。 –

0

addContents()が表示されていないと、データベースの内容がわかりません。つまり、同じレコードを3回挿入しようとしていますが、2回目の2回の試行は競合によって挿入されませんか?

しかし、このseven-parameter version of SQLiteDatabase.query()を使用しているように見えるので、 "DESC"定数をgroupByパラメータとして渡しています。それがなぜあなたが1つの結果しか得ていないのかを説明することができます。

おそらくorderByその列名にしたいですか?

+0

DESCはdescriptionを意味します。ヘルパークラスは文字列descを持ちます。 addContentsメソッドでは、同じレコードを26回追加しました。これは問題ですか?それは同じ値を持つ複数のレコードを持っているので? –

+0

はい、なぜ文字列「DESC」があるのでしょうか?現在、 'ORDER BY'ではなくSQLの' GROUP BY'が起きています(これは私が望むものです)。あなたが同じレコードを26回持っているのは、GROUPされたときに1つの結果しか表示されない理由です。 –

関連する問題