¿Cómo puedo crear una lista Array con los datos del cursor en Android

¿Cómo puedo crear una lista Array (la lista muestra el primer alfabeto cuando se desplaza) con los datos del cursor?

Vaya a través de cada elemento en el Cursor , y agregar uno por uno a la ArrayList .

 ArrayList<WhateverTypeYouWant> mArrayList = new ArrayList<WhateverTypeYouWant>(); for(mCursor.moveToFirst(); !mCursor.isAfterLast(); mCursor.moveToNext()) { // The Cursor is now set to the right position mArrayList.add(mCursor.getWhateverTypeYouWant(WHATEVER_COLUMN_INDEX_YOU_WANT)); } 

(Reemplace WhateverTypeYouWant con el tipo que desea crear un ArrayList de, y WHATEVER_COLUMN_INDEX_YOU_WANT con el índice de columna del valor que desea obtener del cursor.)

Una corrección rápida: el bucle for anterior salta el primer elemento del cursor. Para incluir el primer elemento, utilice esto:

 ArrayList<String> mArrayList = new ArrayList<String>(); mCursor.moveToFirst(); while(!mCursor.isAfterLast()) { mArrayList.add(mCursor.getString(mCursor.getColumnIndex(dbAdapter.KEY_NAME))); //add the item mCursor.moveToNext(); } 

Incluso mejor que la respuesta de @ imbrizi es esta:

 ArrayList<String> mArrayList = new ArrayList<String>(); while(mCursor.moveToNext()) { mArrayList.add(mCursor.getString(mCursor.getColumnIndex(dbAdapter.KEY_NAME))); //add the item } 

moveToNext() devolverá false si no queda nada, por lo que esto reduce el SLOC por unos pocos, y es más fácil de ver.

Incluso mejor es obtener el índice de columna fuera del bucle.

 ArrayList<String> mArrayList = new ArrayList<String>(); int columnIndex=mCursor.getColumnIndex(dbAdapter.KEY_NAME) while(mCursor.moveToNext()) { mArrayList.add(mCursor.getString(columnIndex)); //add the item } 

Este trabajó muy bien para mí porque quería un arraylist de objetos:

 List<MyObject> myList = new ArrayList<String>(); Cursor c = ... while(c.moveToNext()) { myList.add(new MyObject(cursor.getInt(cursor.getColumnIndex("_id")), cursor.getString(cursor.getColumnIndex("column1")), cursor.getInt(cursor.getColumnIndex("column2"))); } c.close(); 

Sólo tiene que hacer un POJO MyObject y asegúrese de que tiene un constructor.

  • ¿Cómo sólo devolver ArrayList de cadenas con el número mínimo de apariciones?
  • Cómo mover el elemento específico en la lista de arreglos al primer elemento
  • Actualizar ArrayList para mostrar nuevos datos en RecyclerView haciendo clic en Spinner Item
  • Obtener una matriz de CLAVES para cada elemento bajo jsonarray
  • Java: Eficaz ArrayList filtrado?
  • Spinner no muestra el valor seleccionado
  • Cómo guardar ArrayList personalizado en la rotación de la pantalla de Android?
  • Convertir ArrayList <MyCustomClass> a JSONArray
  • ¿Cómo comprobar arraylist contiene esta palabra en particular en android?
  • Guardar ArrayList en SharedPreferences
  • Seguridad de subprocesos al realizar iteraciones a través de un ArrayList utilizando foreach
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.