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 ...

Como encriptar AES con Node JS

  Puedes descargar el proyecto desde este enlace El otro día surgió una necesidad para encriptar contenido bajo el algoritmo AES y es la que te vengo a mostrar a continuación en la cual use Node para solventar mi necesidad. Pude haber usando cualquier lenguaje que me viniera en gana pero no quería instalar nada mas. Dependencias: NodeJS >= 12 Crypto-JS Aplicaciones recomendadas: Git bash Visual Studio Code Lo primero que necesitamos es tener una clave única (KEY) y un vector de inicialización (IV). Este ultimo no es necesario pero agrega un extra de seguridad a nuestro contenido. Para lo cual usaremos el bash de git para utilizar openssl KEY openssl rand -base64 24 IV openssl rand -base64 12 Ahora que ya tenemos estas 2 cadenas únicas. Podemos proceder a escribir nuestro código. npm init -y Luego hacemos una modificación en el package.json para que admita módulos "type": "module", Instalamos la dependencia de Crypto-JS npm i crypto-js --save Ahora importamos l...