0

我想从我的数据库中填充一个列表。

我有以下代码:

setContentView(R.layout.pro);
    addProFromDB();

}

我应该如何填充多xCodexInlinexPlacexHolderx

private void addProFromDB() {
    // TODO Auto-generated method stub

    ArrayList<String> results = new ArrayList<String>();
    SQLiteDatabase sampleDB = null;

    try {
        list = (ListView)findViewById(android.R.id.list);
        list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        sampleDB = this.openOrCreateDatabase(SAMPLE_DB_NAME, 1, null);
        sampleDB.execSQL("create table tbl_product("
                + "pro_id integer PRIMARY KEY autoincrement,"
                + "pro_name text," + "pro_price integer);");

        sampleDB.execSQL("insert into tbl_product(pro_name, pro_price) values ('oil', '200' );");

        Cursor c = sampleDB.query(SAMPLE_TABLE_NAMES, null, null, null, null, null,
                null);
        char pro_nameColumnIndex = (char) c.getColumnIndexOrThrow("pro_name");
        int pro_priceColumnIndex = (int) c.getColumnIndexOrThrow("pro_price");

    } finally {
        if (sampleDB != null)
        sampleDB.close();
    }
    setListAdapter(new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_checked, new ArrayList()));

它没有给出任何错误,但也没有显示插入的项目。

4

2 回答 2

1

您的代码段中存在许多问题。

  1. tbl_product每次运行应用程序时,您都在创建表。
  2. 您每次都在新创建的表中插入新元素。
  3. 最后你将空数组传递给你的ArrayAdapteras new ArrayList()

我建议您阅读任何教程,并逐步解决问题。

我建议您遵循本教程,并CursorAdapter在使用 sqlite 时使用。

于 2012-05-03T08:08:57.493 回答
0

我将修改您的代码,现在您可以检查并使用此代码,这可能对您有所帮助..

private void addProFromDB() {
// TODO Auto-generated method stub

ArrayList<String> results = new ArrayList<String>();
SQLiteDatabase sampleDB = null;

try {
    list = (ListView)findViewById(android.R.id.list);
    sampleDB = this.openOrCreateDatabase(SAMPLE_DB_NAME, 1, null);
    sampleDB.execSQL("create table if not exists tbl_product("
            + "pro_id integer PRIMARY KEY autoincrement,"
            + "pro_name text," + "pro_price integer);");

    sampleDB.execSQL("insert into tbl_product(pro_name, pro_price) values ('oil', '200' );");

    Cursor c = sampleDB.query(SAMPLE_TABLE_NAMES, null, null, null, null, null,
            null);
    char pro_nameColumnIndex = (char) c.getColumnIndexOrThrow("pro_name");
    int pro_priceColumnIndex = (int) c.getColumnIndexOrThrow("pro_price");

ArrayList list = new ArrayList()
list.add(pro_nameColumnIndex);
list.add(pro_priceColumnIndex);
setListAdapter(new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_checked, list));

} finally {
    if (sampleDB != null)
    sampleDB.close();
}
于 2012-05-03T08:28:05.880 回答