我是 android 编程的新手,在做我的第一个应用程序时我发现列表有问题。 这里的代码:
Cursor c = db.rawQuery("SELECT nombre FROM contactos", null);
ArrayList<String> listaArray = new ArrayList<String>();
ListView listadoContactos = (ListView)findViewById(R.id.listViewListaContactos);
if (c.moveToFirst())
{
do {
listaArray.add(c.getString(0));
} while(c.moveToNext());
}
//Creamos un adaptador y lo asignamos al ListView.
ArrayAdapter<String> adaptadorLista = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listaArray);
listadoContactos.setAdapter(adaptadorLista);
当我看到结果时,我的列表仅显示我正在查询的数据库中的第一项。你能帮帮我吗?
多谢指教!乔治。
PS:“nombre”是第 0 列。这就是我写“getString(0)”的原因,因为我只想显示每一行的 1 列。
最佳答案
尝试使用SimpleCursorAdapter
// NOTE your query result should have id-field, named "_id"
Cursor c = db.rawQuery("SELECT nombre, nombre_id as _id FROM contactos", null);
SimpleCursorAdapter adaptorLista = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, c, new String[]{"nombre"}, new int[]{android.R.id.text1} );
listadoContactos.setAdapter(adaptadorLista);
这里的android.R.layout.simple_list_item_1
是ListView中每一行的布局,
new String[]{"nombre"}
游标中字段的名称,其值设置为 ListView 行中的 TextView。在最后一个参数 new int[]{android.R.id.text1}
关于android - ArrayAdapter/ListView 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331011/