我试图用数据库的行填充列表,第一列是每个列表项的标题,然后是每个列表项的其他行子文本,到目前为止我的尝试都没有用。
ListView browser = (ListView)findViewById(R.id.BrowsePO);
SQLiteDatabase db=openOrCreateDatabase("POTable.db",MODE_PRIVATE, null);
Cursor c =db.rawQuery("SELECT * FROM POTable" ,null);
c.moveToFirst();
List<String> POnumbers= new ArrayList<String>();
int totalPO = c.getCount();
while(totalPO!=0)
{
String _PO = c.getString(c.getColumnIndex("POnumber"));
String _Lat = c.getString(c.getColumnIndex("Latitude"));
String _Long = c.getString(c.getColumnIndex("Longitude"));
POnumbers.add(new String( " " + _PO + " " + _Lat + " " + _Long));
c.moveToNext();
totalPO = totalPO -1;
}
c.close();
ArrayAdapter array = new ArrayAdapter(this, POnumbers);
答案 0 :(得分:2)
您需要使用CursorAdapter而不是数组适配器。
您应该在后台线程上查询您的数据库 - 例如在AsyncTask或CursorLoader中。然后从查询中返回一个Cursor,并将其传递给CursorAdapter。适配器处理将光标移动到下一个/上一个位置,您只需将光标中的数据绑定到视图。
This可能会有所帮助。