我正在尝试使用 sqlite 数据库、listview 和 arraylist。单击按钮将数据插入数据库,然后使用光标将数据通过“select”提取出来,理想情况下应该反映在 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();
}
}
请澄清我的代码是否行为不端。谢谢。