Android – Visualización de los resultados del cursor de DB en ListView

He estado intentando conseguir mi cursor para exhibir correctamente en listview. Se muestra correctamente cuando se utiliza un brindis por lo que el cursor está recuperando los datos correctamente, pero estoy teniendo problemas para hacer que se muestre en formato de lista.

Debe haber 6 columnas en cada fila.

Sólo muestra una fila sin datos. Estoy seguro de que es un problema muy básico. Tal vez alguien podría decirme a dónde me equivoco, estaría agradecido.

DisplayCursor.Java

public class DisplayCursor extends ListActivity { MyDBManager db = new MyDBManager(this); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_cursor); db.open(); Cursor cursor = db.getAllRows(); startManagingCursor(cursor); String[] columns = new String[] { MyDBManager.KEY_DESCRIPTION, MyDBManager.KEY_PERCENTAGE, MyDBManager.KEY_PRICE, MyDBManager.KEY_VOLUME, MyDBManager.KEY_VFM, MyDBManager.KEY_QUANTITY }; int[] to = new int[] { R.id.description,R.id.perc,R.id.price,R.id.units,R.id.vol, R.id.vfm }; SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this, R.layout.row, cursor, columns, to); this.setListAdapter(mAdapter); db.close(); } } 

Row.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/description" android:layout_width="140dp" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="27dp" /> <TextView android:id="@+id/vol" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/description" android:layout_alignBottom="@+id/description" android:layout_toRightOf="@+id/description" /> <TextView android:id="@+id/perc" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/vol" android:layout_alignBottom="@+id/vol" android:layout_toRightOf="@+id/vol" /> <TextView android:id="@+id/price" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/perc" android:layout_alignBottom="@+id/perc" android:layout_toRightOf="@+id/perc" /> <TextView android:id="@+id/units" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/price" android:layout_alignBottom="@+id/price" android:layout_toRightOf="@+id/price" /> <TextView android:id="@+id/vfm" android:layout_width="80dp" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/units" android:layout_alignBottom="@+id/units" android:layout_toRightOf="@+id/units" /> </RelativeLayout> 

Activity_display_cursor.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ListView android:id="@android:id/list" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/nodata"/> </LinearLayout> 

One Solution collect form web for “Android – Visualización de los resultados del cursor de DB en ListView”

Ah, ListView con CursorAdapter golpea de nuevo! No es fácil rondar la primera vez, así que:

Usted tiene la mayoría de lo correcto, sin embargo, su row.xml debe contener una vista para cada columna en el cursor que desea mostrar. El argumento "layout" en el constructor CursorAdapter especifica el resID de un archivo de diseño; Este archivo describe una fila . En su caso, probablemente desee un RelativeLayout que tenga 6 TextViews en él, uno para cada uno de los valores de R.id en el argumento "to" para el constructor. El CursorAdapter se encarga de asignar las columnas del cursor a las vistas en el argumento "to", por lo que el tamaño de esos arrays tiene que ser el mismo.

El layout activity_display_cursor.xml define el ListView.

Como nota, no uso ListActivity mucho. Es bastante fácil configurar un ListView con un adaptador en una actividad normal. Además, startManagingCursor fue obsoleto en API 11. Una mejor opción es usar android.support.v4.content.CursorLoader y android.support.v4.widget.SimpleCursorAdapter.

  • El constructor SimpleCursorAdapter (Context, int, Cursor, String , int ) está obsoleto
  • Android, usando SimpleCursorAdapter para establecer el color no sólo las cadenas
  • ¿Qué bandera usar en SimpleCursorAdapter?
  • Android: ¿Cómo Requerir un Cursor para actualizar ListView después de eliminar la fila de la base de datos?
  • Actualización de Android ListView con SimpleCursorAdapter
  • Android - Obtención de la lista de contactos con direcciones de calle, pero no con valores bajos como Skype, donde la dirección es sólo una ciudad y un estado
  • NullPointer cuando findViewById () en SimpleCursorAdapter
  • Enfoque para rellenar la vista de lista expandible con la base de datos SQlite local
  • Agregar un separador de fecha para un SimpleCursorAdapter en Android
  • Conversión de un ArrayAdapter a CursorAdapter para su uso en un SearchView
  • ListView vacío si SimpleCursorAdapter cerrado ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.