2 o casper ne O_Casper_ne 于 2013.02.25 16:47 提问

列出 Sqlite 中的内容

我使用如下的代码想把一些列中所有的 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);
    }

2个回答

yongyong_21
yongyong_21   2013.02.25 17:50
已采纳

在我的应用程序中我使用:

 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;
    }
}
xiaoyan_12
xiaoyan_12   2013.02.27 13:33

在表格中不需要使用选择参数

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);
Csdn user default icon
上传中...
上传图片
插入图片