Enfoque para rellenar la vista de lista expandible con la base de datos SQlite local
Tengo una base de datos sqlite en mi aplicación. Quiero hacer una vista de lista ampliable con eso.
Estoy fijo con el enfoque que debo tomar para eso.
- Base de datos SQlite programaticamente convertir en formato de archivo de Excel en Android
- Duplicar la base de datos Android de otra aplicación?
- ¿Por qué se ha borrado la base de datos SQLite al borrar los datos de la aplicación de Application Management?
- Exención de SQLite sobre la reanudación de la actividad de Android
- Android AsyncTask - una subclase por operación de base de datos?
Intentado mucho para encontrar un tutorial para el mismo, pero no podría encontrar uno solo, donde uno está poblando la lista extensible con la base de datos local.
Hay un tutorial en el sitio de Android donde se rellena la lista ampliable con el detalle de contacto en el teléfono. Ellos están haciendo esto desde el proveedor de contenido ExpandableList2.java
Así que mi pregunta es ¿Debo también crear un proveedor de contenido para mi base de datos que está dentro de mi propia aplicación?
¿Es este el único enfoque o hay otro mejor?
- Actualización de la imagen del perfil del usuario
- Android concurrencia sqlite sin excepciones
- ¿Hay alguna manera eficiente de hacer la consulta de base de datos Android más rápido?
- Obtener la distancia más corta desde un punto
- Cambiar el número de versión de la base de datos SQLite
- Android: niveles de aislamiento de transacciones SQLite (ORMLite)
- Calcular la distancia entre dos puntos directamente en SQLite
- No se puede cerrar debido a declaraciones sin finalizar Android
Había creado un proyecto para probar la lista expandible y la base de datos, espero que esto ayude
Clase final ExpAdapter extends CursorTreeAdapter { MInflator LayoutInflater; Public ExpAdapter (Cursor cursor, Context context) { Super (cursor, contexto); MInflator = LayoutInflater.from (contexto); } @Anular Protected void bindChildView (Ver vista, Contexto contexto, Cursor cursor, Boolean isLastChild) { TextView tvChild = (TextView) view.findViewById (android.R.id.text1); TvChild.setText (cursor.getString (cursor .getColumnIndex (DBHelper.COL_TABLE_CHILD_NAME))); } @Anular Protected void bindGroupView (Vista de vista, Contexto contextual, Cursor cursor, Boolean isExpanded) { TextView tvGrp = (TextView) view.findViewById (android.R.id.text1); TvGrp.setText (cursor.getString (cursor .getColumnIndex (DBHelper.COL_TABLE_MAIN_NAME))); } @Anular Protected Cursor getChildrenCursor (Cursor groupCursor) { Int groupId = groupCursor.getInt (groupCursor .getColumnIndex (DBHelper.COL_ID)); Return aDBHelper.getChildCursor (groupId); } @Anular Protected Ver nuevoChildView (Contexto contextual, Cursor cursor, Boolean isLastChild, ViewGroup padre) { Ver mView = mInflator.inflate ( Android.R.layout.simple_expandable_list_item_1, null); TextView tvChild = (TextView) mView .findViewById (android.R.id.text1); TvChild.setText (cursor.getString (cursor .getColumnIndex (DBHelper.COL_TABLE_CHILD_NAME))); Return mView; } @Anular Protected Ver newGroupView (Contexto contextual, Cursor cursor, Boolean isExpanded, ViewGroup padre) { Ver mView = mInflator.inflate ( Android.R.layout.simple_expandable_list_item_1, null); TextView tvGrp = (TextView) mView.findViewById (android.R.id.text1); TvGrp.setText (cursor.getString (cursor .getColumnIndex (DBHelper.COL_TABLE_MAIN_NAME))); Return mView; } }
No tiene que crear un proveedor de contenido para eso.
- Cree una clase DBHelper y cree funciones para obtener registros de su base de datos local sin un proveedor de contenido.
- Cree una clase de modelo para mantener los registros de su base de datos local.
- Utilice esta clase de modelo como sus datos para su adaptador de lista.
Si su base de datos local, el mejor enfoque es ir con CursorTreeAdapter porque automáticamente se encarga de actualizar la lista.
Compruebe este mensaje de mi ayuda. ExpandableListView utilizando CursorTreeAdapter con fragmento, Proveedor de contenido, LoaderCallbacks y CursorLoader
- Cómo convertir Java.Util.Date a System.DateTime
- Certificado SSL para los servicios web REST (utilizados por Android)?