我試圖擺弄sqlite數據庫,listview和arraylist.On點擊按鈕數據被插入到數據庫,然後使用遊標的數據提取'選擇'和理想情況下應在listview.Following反映是相同的代碼:ListView不更新數組中的條目
以下活動發生在onCreate方法:
lstitem=new ArrayList<String>();
listadap=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,lstitem);
l1=(ListView)findViewById(R.id.listView1);
l1.setAdapter(listadap);
l1.setVisibility(View.VISIBLE);
而且按鈕單擊該代碼是應該做下面的事情,關閉這它插入的值非常好,但我猜想Cursor對象有些問題,並且它的實例化使用'rawQuery'並不確定它:
MainActivity.myDataBase.openDatabase("/data/data/packagename/databases/tablename", null,MainActivity.myDataBase.OPEN_READWRITE);
MainActivity.myDataBase.execSQL("INSERT INTO " +
MainActivity.tablename +
" Values ('"+ finalnumber +"','"+ name +"','"+ message +"','"+ event +"','"+ ldate +"');");
Cursor cu = MainActivity.myDataBase.rawQuery("SELECT Name FROM " + MainActivity.tablename + " WHERE Date =" + ldate +";" , null);
cu.moveToFirst();
Log.d("first rec", cu.toString());
while(cu.isAfterLast())
{
try{
lstitem.add(cu.getString(0));
Log.d("first list item",lstitem.get(0)); //this is not returning any value in logcat.
Log.d("first rec", cu.getString(0));// this is returning garbled value in logcat
cu.moveToNext();
}
catch(Exception e)
{
e.printStackTrace();
}
}
請說清楚我的代碼是否在行爲不端。謝謝。
如果你的數據來自數據庫,爲什麼用一個ArrayList麻煩之後?爲什麼使用rawQuery而不是select? 'cu.toString()'返回遊標的描述。很可能不太理解。我的猜測是你的查詢不會返回任何結果 – njzk2