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 que hay un

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

Abrir modal cuando se cargue la pagina web

Se advierte que blogger puede cambiar el resultado, pero tranquilo, te dejo un enlace donde lo puedes ver sin mas ni mas haciendo click aquí Una de las cosas interesantes de  usar Bootstrap en tus proyectos es que ya trae muchas funcionalidades como los modales. Algo en particular que me han preguntado mas de una vez es lo siguiente: ¿Puedo abrir un modal al momento de cargar una pagina web? La respuesta es un simple SI y te muestro como hacerlo de manera rápida Ahora simplemente tenemos que mandar a llamar un fragmento de código en nuestro JQuery: $(function(){ $("#myModal").modal(); }); Es algo simple cuando ya conoces la solución claro y espero te sirva mucho