android - ArrayAdapter/ListView 不工作

标签 android listview cursor android-arrayadapter

我是 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}

中指定的 TextView id

关于android - ArrayAdapter/ListView 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5331011/

相关文章:

java - 在android ListView中找出被点击元素的父级

c# - 强制 ListViewItem 占据所有 ListView 宽度

android - 提示后面的光标

android - 访问原始联系人数据

java - 从链接启动 Android 应用程序并导航到特定 URL?

android - 更改 Android Studio 的设备文件资源管理器的默认 'Save as...' 文件夹

java - ListView/Adapter 不显示最后一项

android - Eclipse 中 Android 项目的 Javadoc 因 NullPointerException 而失败

ART中的Android自修改代码

python - Python 中的游标与连接