数据库游标始终只检索一行

时间:2011-01-05 10:08:47

标签: android database

我正在尝试将数据库的内容检索到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);  

2 个答案:

答案 0 :(得分:0)

糖果   System.out.println 在Android上无效,请用Log.d(TAG,msg)替换它以查看DDMS上的输出。

答案 1 :(得分:0)

在没有看到addContents()的作用的情况下,我们不知道数据库的内容是什么..即您是否尝试插入相同的记录三次但是由于冲突而导致第二次尝试不插入?

但是,由于您似乎正在使用此seven-parameter version of SQLiteDatabase.query(),因此您将“DESC”常量作为groupBy参数传递。这可以解释为什么你只得到一个结果。

大概你想要orderBy那个列名吗?