我使用如下的代码想把一些列中所有的 items 传递到 arrayadapter。有什么好方法能实现?
private void TestListAll(){
//Displays the whole list.
cursor = db.rawQuery("SELECT _id, firstName, lastName, title FROM employee WHERE firstName || ' ' || lastName LIKE ?",
new String[]{"%" + "" + "%"});
adapter = new SimpleCursorAdapter(
this,
R.layout.emp_list_item,
cursor,
new String[] {"firstName", "lastName", "title"},
new int[] {R.id.firstName, R.id.lastName, R.id.title});
setListAdapter(adapter);
}
在我的应用程序中我使用:
public ArrayList<HashMap<String, ?>> selectLastPlayed() {
ArrayList<HashMap<String, ?>> list = new ArrayList<HashMap<String, ?>>();
Cursor cursor = this.db.query("employee Order BY ID DESC",
new String[] { "*" }, null, null, null, null, null);
if (cursor.moveToFirst()) {
do {
HashMap<String, Object> temp = new HashMap<String, Object>();
temp.put("Icon", cursor.getString(1));
temp.put("Title", cursor.getString(2));
list.add(temp);
} while (cursor.moveToNext());
}
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
return list;
}
然后,你可以把 arraylist 放入 adapter 中:
SimpleAdapter adapter = new MySimpleAdapter(this, selectLastSearch(), R.layout.custom_row_view, new String[] { "Icon", "Icon" }, new int[] { R.id.textView1123, R.id.imageView12 });
adapter:
public class MySimpleAdapter extends SimpleAdapter {
Context localcontext = null;
public MySimpleAdapter(Context context,List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
localcontext = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
return view;
}
}
在表格中不需要使用选择参数
public Cursor getAllItems() {
return this.sqliteDBInstance.query(EMPLOYEE_TABLE, null, null, null, null, null, null);
}
然后在 activity 中,当在 getAllItems Cursor 方法中选择ID时,显示 firstname, lastname 和 title。
Private Cursor cursor;
...
cursor = db.getAllItems();
startManagingCursor(cursor);
ListAdapter adapter = new SimpleCursorAdapter(MyActivity.this,
R.layout.emp_list_item, cursor, new String[] { "firstName", "lastName", "title" }, new int[] { R.id.firstName, R.id.lastName, R.id.title });
setAdapter(adapter);