2011-07-01 125 views
0

我正在尝试使用产品填充列表视图。我可以做到,但我需要他们有自定义ID(SQLite数据库中的)。我怎样才能做到这一点?这是我的代码没有ID执行迄今:ListView中的自定义ID

ArrayList<String> productNameList = new ArrayList<String>(); 
    ArrayList<String> productIdList = new ArrayList<String>(); 
    Cursor results = myDbHelper.getProducts(); 
    ListView lv = (ListView) findViewById(R.id.productlist); 

    while (results.moveToNext()){ 
     productNameList.add(results.getString(results.getColumnIndex("name"))); 
     productIdList.add(results.getString(results.getColumnIndex("id"))); 
    } 


    lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , productNameList)); 

回答

0

您应该使用SimpleCursorAdapter:

String[] columns = new String[] { "_id", "name" }; 
    int[] to = new int[] { android.R.id.text1, android.R.id.text2 }; 

    SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, columns, to); 
    lv.setAdapter(mAdapter)); 

“到”和“列”定义的映射: “colums”是名单您希望SimpleCursorAdapter读取的数据库列名称。 “to”是android id的列表,指定在哪个小部件上设置光标的值。

在后面的代码中,这意味着“_id”的值将显示在android id为“android.R.id.text1”的文本字段中,列“name”的值将进入文本字段“ android.R.id.text2" 。

+0

“to”和my_cell_layout是什么?谢谢。 –

+0

我编辑了代码 – thaussma