Ir al contenido principal

BDate Parte 5 - ListView con base de datos

Bueno ya casi estamos por terminar todo lo referente a la app, ya solo nos queda algunos cuantos pasos mas y tendríamos una app totalmente funcional.

Hemos trabajado los layout, codeamos las clases a usar y creamos una base de datos. Ahora pasaremos a crear un ListView para mostrar todas las notas que creemos, creamos una clase llamada NotasList.java.


Ya que tenemos la clase creada,  pasemos a mostrar el código usado
package com.nayosx.nl;

import java.util.ArrayList;

import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;

public class NotasList extends ListActivity{
 private ArrayList resultados = new ArrayList();
 private DBAdapter myAdapBD;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        abrirDBAdapter();
        
        mostrarResultados();
        
    }
 
 
 private void mostrarResultados() {
  // TODO Auto-generated method stub
  setListAdapter(new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, resultados));
        getListView().setTextFilterEnabled(true);
 }
 
 
 
 private void abrirDBAdapter() {
  // TODO Auto-generated method stub
  try {
   myAdapBD = new DBAdapter(this);
   myAdapBD.abrir();
   Cursor c = myAdapBD.getAllNotas();
   if (c.moveToFirst())
   {
   do {
    addToLista(c);
   } while (c.moveToNext());
   }
   myAdapBD.cerrar();
  } catch (SQLiteException se ) {
         Log.e(getClass().getSimpleName(), "NO se ha podido acceder a la base de datos");
        }
 }


 private void addToLista(Cursor c) {
  // TODO Auto-generated method stub
  resultados.add(c.getString(1));
 }
 
 
 
}
//

Como lo notaran esta clase no hereda de Activity sino mas bien de ListActivity, ademas no hacemos uso de ningún layout, pero si sobre-escribimos el  método onCreate() ya que es el punto de partida de cualquier aplicación Android.

Dentro del método onCreate() agregamos dos métodos uno llamado abrirDBAdapter() y el otro mostrarResultados().

El método abrirDBAdapter() se encarga de consulta a nuestra clase DBAdapter, para recuperar toda la información de las notas (mas en especifico el titulo de ellas), adentro de este método se maneja una posible excepción, esto por si no se logra abrir la base de datos y ademas hacemos uso de un do-while para recuperar toda esa información, luego se pasa a un método llamado addToLista(), esto para agregarlo al ArrayList llamado resultados, el cual se encarga de llenar todo el ListView.


Ademas de lo mencionado anteriormente, es ahí donde terminamos creando nuestra instancia DBAdapter la cual se llama myAdapBD, esta instancia nos sirve para abrir la base de datos, para decirle al Cursor (llamado simplemente c), de donde recuperara datos y para cerrar la base de datos.


mostrarResultados() se encarga de formatear nuestro ListView, para ello hace uso del método setListAdapter(), en donde se crea una instancia ArrayAdapter() y dentro de sus parámetros se le dice de que contexto hacemos uso (this), el estilo que llevara (android.R.layout.simple_list_item_1) y un arreglo de objetos el cual sirve para crear la lista a desplegar (resultados).

Para terminar con esta clase, hay que agregarla al AndroidManifest, el cual nos queda de la siguiente manera


Bueno eso es todo por esta ocasión, luego seguiremos con el tutorial, espero que les guste.

Entradas populares de este blog

Northwind para Mysql y otras

Supongamos que necesitamos una base de datos para comenzar a hacer pruebas y a la vez necesitamos que esa base de datos contenga mucha información con la cual trabajar. En mis tiempos de universidad existía una base de datos que utilizábamos en los laboratorios con SQL Server y c# para mostrar los datos en algún formulario. El nombre era Northwind. El problema es que era solo para SQL Server, pero alguien en se dio a la tarea de exportar esa base de datos a MySql y es justo lo que te vengo a mostrar acá. Hace un tiempo atrás clone de los repositorios de Google Code   esa información (que como algunos de ustedes sabrá dejara de estar al servicio de todos en un tiempo). Modifique un poco la DB de Mysql para que se pudiera ejecutar el script sin ningún problema. Lo interesante de todo esto es que puedes utilizar los demás script para diferentes gestores de base de datos Se advierte que para poder usarlas adecuadamente hay que modificar los campos de tipo longblob y qu...

How to upload File from form data POST in Android with Retrofit 2

 The last day I explain how to upload a simple CSV file using node . And now I teach how to upload from android device. Get source code here:  GitHub This article is write in java... later I'll add the method for kotlin. The logic is not changed, only the format code. 1) Is necessary add the dependencies in gradle: module implementation 'com.google.code.gson:gson:2.8.6' // RETROFIT // implementation 'com.squareup.retrofit2:retrofit:2.6.2' implementation 'com.squareup.retrofit2:converter-gson:2.6.2' implementation 'com.squareup.retrofit2:converter-scalars:2.5.0' 2) Add permissions in AndroidManifest.xml and modified the application for work with network security policy <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> in applitacion add ...

Instalacion de apk desde el adb (Linux y Windows)

Por lo general siempre instalamos nuestras aplicaciones por medio de algún gestor oh tienda de aplicaciones como el Google Play oh F-Droid por mencionar a algunos. Pero que pasa cuando no podemos acceder a esas tiendas y hemos modificado algunas cosas del sistema como por ejemplo la eliminación del teclado, por el simple hecho de que no nos gusta, oh a ver quitado el propio launcher del sistema, aunque suene ilógico hay personas que lo hacen (yo por ejemplo lo he hecho a modo de prueba en un Kiosera que tuve, ya que me pareció demasiado pesado y lelo el launcher y el teclado por defecto y llegue a una optimizacion del SO de un 100%). Quizás eso es lo mejor de Android, el completo control que este te da si eres root, sin mas preámbulo te muestro como instalar las apk por medio del ADB de Android. Pero antes de que los vea me gustaría aclarar que esto es aplicable tanto para dispositivos físicos como emuladores, en el caso de ser dispositivos físicos asegúrate de tener los dr...