SlideShare una empresa de Scribd logo
UNIVERSIDAD TECNOLÓGICA DEL ESTADO DE ZACATECAS
UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Materia
Desarrollo de aplicaciones III
Tema
Documentación de la aplicación en android.
Nombre completo del Alumno: Carlos Eduardo Sánchez Martínez.
Grado: 5 Grupo: A
Nombre del Docente: ITIC. Eloy Contreras de Lira
Fecha de entrega: 21-03-2014.
Lo primero que haremos es crear una clase que herede de SQLiteOpenHelper. Esta clase
nos permite crear la base de datos y actualizar la estructura de tablas y datos iniciales.
Debemos implementar el constructor y sobrescribir los métodos onCreate y onUpgrade.
El método onCreate se le llama cuando la base de datos se crea por primera vez. Aquí es
donde se define la estructura de las tablas y se cargan eventualmente los datos iniciales
En el método onUpgrade se llama cuando la base de datos debe ser actualizada. Tiene por
objetivo eliminar tablas, añadir tablas, o hacer cualquier otra cosa que necesita para
actualizarse.
Implementaremos una nueva clase llamada AdminSQLiteOpenHelper que herede de la
clase SQLiteOpenHelper:
package com.carlos.proyecto015;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class AdminSQLiteOpenHelper extends SQLiteOpenHelper {
public AdminSQLiteOpenHelper(Context context, String nombre,
CursorFactory factory, int version) {
super(context, nombre, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table votantes(dni integer primary key, nombre
text, colegio text, nromesa integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int versionAnte, int
versionNue) {
db.execSQL("drop table if exists votantes");
db.execSQL("create table votantes(dni integer primary key, nombre
text, colegio text, nromesa integer)");
}
}
En el constructor solo llamamos al constructor de la clase padre pasando los datos que
llegan en los parámetros:
public AdminSQLiteOpenHelper(Context context, String nombre,
CursorFactory factory, int version) {
super(context, nombre, factory, version);
}
En el método onCreate procedemos a crear la tabla votantes con los cuatro campos
respectivos y definiendo el campo dni como primary key:
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table votantes(dni integer primary key,
nombre text, colegio text, nromesa integer)");
}
En el método onUpgrade procedemos a borrar la tabla votantes y crear nuevamente la tabla
(en este caso con la misma estructura pero podría ser otra en un caso más real:
public void onUpgrade(SQLiteDatabase db, int versionAnte, int
versionNue) {
db.execSQL("drop table if exists votantes");
db.execSQL("create table votantes(dni integer primary key,
nombre text, colegio text, nromesa integer)");
}
Ahora veamos la otra clase que implementará las altas, bajas, modificaciones y consultas:
package com.javaya.proyecto015;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et1, et2, et3, et4;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et1 = (EditText) findViewById(R.id.editText1);
et2 = (EditText) findViewById(R.id.editText2);
et3 = (EditText) findViewById(R.id.editText3);
et4 = (EditText) findViewById(R.id.editText4);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
public void alta(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
ContentValues registro = new ContentValues();
registro.put("dni", dni);
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
bd.insert("votantes", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
Toast.makeText(this, "Se cargaron los datos de la persona",
Toast.LENGTH_SHORT).show();
}
public void consulta(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
Cursor fila = bd.rawQuery(
"select nombre,colegio,nromesa from votantes where dni="
+ dni, null);
if (fila.moveToFirst()) {
et2.setText(fila.getString(0));
et3.setText(fila.getString(1));
et4.setText(fila.getString(2));
} else
Toast.makeText(this, "No existe una persona con dicho dni",
Toast.LENGTH_SHORT).show();
bd.close();
}
public void baja(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
int cant = bd.delete("votantes", "dni=" + dni, null);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
if (cant == 1)
Toast.makeText(this, "Se borró la persona con dicho
documento",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "No existe una persona con dicho
documento",
Toast.LENGTH_SHORT).show();
}
public void modificacion(View v) {
AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd = admin.getWritableDatabase();
String dni = et1.getText().toString();
String nombre = et2.getText().toString();
String colegio = et3.getText().toString();
String nromesa = et4.getText().toString();
ContentValues registro = new ContentValues();
registro.put("nombre", nombre);
registro.put("colegio", colegio);
registro.put("nromesa", nromesa);
int cant = bd.update("votantes", registro, "dni=" + dni, null);
bd.close();
if (cant == 1)
Toast.makeText(this, "se modificaron los datos",
Toast.LENGTH_SHORT)
.show();
else
Toast.makeText(this, "no existe una persona con dicho
documento",
Toast.LENGTH_SHORT).show();
}
}
1 - Alta de datos.
Cuando se presiona el botón alta se ejecuta el método "alta" debemos inicializar la
propiedad "OnClick" del botón desde la ventana de visualización del archivo XML.
Lo primero que hacemos en este método es crear un objeto de la clase que planteamos
anteriormente y le pasamos al constructor this (referencia del Activity actual),
"administración" (es el nombre de la base de datos que crearemos en el caso que no exista)
luego pasamos null y un uno indicando que es la primer versión de la base de datos (en caso
que cambiemos la estructura o agreguemos tablas por ejemplo podemos pasar un dos en
lugar de un uno para que se ejecute el método onUpgrade donde indicamos la nuestra
estructura de la base de datos)
Luego de crear un objeto de la clase AdminSqLiteOpenHelper procedemos a crear un
objeto de la clase SQLiteDataBase llamando al método getWritableDatabase (la base de
datos se abre en modo lectura y escritura).
Creamos un objeto de la clase ContentValues y mediante el método put inicializamos todos
los campos a cargar.
Seguidamente llamamos al método insert de la clase SQLiteDatabase pasando en el primer
parámetro el nombre de la tabla, como segundo parámetro un null y por último el objeto de
la clase ContentValues ya inicializado (este método es el que provoca que se inserte una
nueva fila en la tabla votantes en la base de datos llamada administración)
Borramos seguidamente los EditText y mostramos un mensaje para que conozca el
operador que el alta de datos se efectuó en forma correcta:
public void alta(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
String nombre=et2.getText().toString();
String colegio=et3.getText().toString();
String nromesa=et4.getText().toString();
ContentValues registro=new ContentValues();
registro.put("dni",dni );
registro.put("nombre",nombre );
registro.put("colegio",colegio );
registro.put("nromesa",nromesa );
bd.insert("votantes", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
Toast.makeText(this, "Se cargaron los datos de la persona",
Toast.LENGTH_SHORT).show();
}
2 - Consulta de datos.
Cuando se presiona el botón "Consulta por DNI" se ejecuta el método consulta:
public void consulta(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
Cursor fila=bd.rawQuery("select nombre,colegio,nromesa from
votantes where dni="+dni+"",null);
if (fila.moveToFirst())
{
et2.setText(fila.getString(0));
et3.setText(fila.getString(1));
et4.setText(fila.getString(2));
}
else
Toast.makeText(this, "No existe una persona con dicho dni",
Toast.LENGTH_SHORT).show();
bd.close();
}
En el método consulta lo primero que hacemos es crear un objeto de la clase
AdminSQLiteOpenHelper y obtener una referencia de la base de datos llamando al método
getWritableDatabase.
Seguidamente definimos una variable de la clase Cursor y la inicializamos con el valor
devuelto por el método llamado rawQuery.
La clase Cursos almacena en este caso una fila o cero filas (una en caso que hayamos
ingresado un dni existente en la tabla votantes), llamamos al método moveToFirst () de la
clase Cursos y retorna true en caso de existir una persona con el dni ingresado, en caso
contrario retorna cero.
Para recuperar los datos propiamente dichos que queremos consultar llamamos al método
getString y le pasamos la posición del campo a recuperar (comienza a numerarse en cero,
en este ejemplo la columna cero representa el campo nombre, la columna 1 representa el
campo colegio y la columna 2 representa el campo nromesa)
3 - Baja o borrado de datos.
Para borrar uno o más registros la clase SQLiteDatabase tiene un método que le pasamos en
el primer parámetro el nombre de la tabla y en el segundo la condición que debe cumplirse
para que se borre la fila de la tabla. El método delete retorna un entero que indica la
cantidad de registros borrados:
public void baja(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
int cant=bd.delete("votantes", "dni="+dni+"",null);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
if (cant==1)
Toast.makeText(this, "Se borró la persona con dicho documento",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "No existe una persona con dicho
documento", Toast.LENGTH_SHORT).show();
}
4 - Modificación de datos.
En la modificación de datos debemos crear un objeto de la clase ContentValues y mediante
el método put almacenar los valores para cada campo que será modificado. Luego se llama
al método update de la clase SQLiteDatabase pasando el nombre de la tabla, el objeto de la
clase ContentValues y la condición del where (el cuanto parámetro en este ejemplo no se lo
emplea)
public void modificacion(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this,
"administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
String nombre=et2.getText().toString();
String colegio=et3.getText().toString();
String nromesa=et4.getText().toString();
ContentValues registro=new ContentValues();
registro.put("nombre",nombre);
registro.put("colegio",colegio);
registro.put("nromesa",nromesa);
int cant = bd.update("votantes", registro, "dni="+dni, null);
bd.close();
if (cant==1)
Toast.makeText(this, "se modificaron los datos",
Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "no existe una persona con dicho
documento", Toast.LENGTH_SHORT).show();
}

Más contenido relacionado

PDF
manual visual basic 02
PDF
Aplicación móvil con acceso a datos
PDF
Guia no1 ado.net
PDF
Guia n5 tam 2009 1
PDF
Visual 2010 sql server 2008
PDF
Taller desarrollando sitios web multiplataforma
PDF
Visual basic 2010 data por codigo
PDF
Jquery para principianes
manual visual basic 02
Aplicación móvil con acceso a datos
Guia no1 ado.net
Guia n5 tam 2009 1
Visual 2010 sql server 2008
Taller desarrollando sitios web multiplataforma
Visual basic 2010 data por codigo
Jquery para principianes

La actualidad más candente (13)

DOCX
Altas Julio Cesar Melendez Cano
DOCX
Codigo de bajas en Visual Basic, Luis Angel Mena Martínez
PDF
Elemento n3
DOCX
Power builder
PDF
Altas alumnos
PDF
ListBox in C#
DOCX
Aprender código vba
PDF
Practica form builder
PDF
Practica 3 web
PDF
Visual basic cbtis
PDF
Cristinagananparedes
PDF
Base de datos con Netbeans
DOCX
Practica 4
Altas Julio Cesar Melendez Cano
Codigo de bajas en Visual Basic, Luis Angel Mena Martínez
Elemento n3
Power builder
Altas alumnos
ListBox in C#
Aprender código vba
Practica form builder
Practica 3 web
Visual basic cbtis
Cristinagananparedes
Base de datos con Netbeans
Practica 4
Publicidad

Destacado (20)

PPT
Recomendaciones de estilo en la administración
DOC
Tarea 9
DOCX
Oração pai nosso e a garota
PPSX
El cuadrante del flujo de dinero (pp tminimizer)
PDF
Análise de Repercussão na Mídia - Gleisi Hoffmann
PPTX
Imersão espanhol 2011
PDF
2013218 8373194 introduccion a los metadatos
PPSX
Fotos quadros
PPS
O Palmeirense
PDF
Curso "Transparencia" Paraiso, Tabasco 18 y 19 de julio
PPT
educopedia2
DOC
Guia contenido, contenido 3 corregida
DOC
1. fisiología del ar
PPTX
Paz 2012
PPTX
Roberto jimenez presem. informatika
PPTX
Maira
PPS
Carrera De Submarinos
PPT
PPS
Loira sequestradora
PPT
Tipos de Gráficos
Recomendaciones de estilo en la administración
Tarea 9
Oração pai nosso e a garota
El cuadrante del flujo de dinero (pp tminimizer)
Análise de Repercussão na Mídia - Gleisi Hoffmann
Imersão espanhol 2011
2013218 8373194 introduccion a los metadatos
Fotos quadros
O Palmeirense
Curso "Transparencia" Paraiso, Tabasco 18 y 19 de julio
educopedia2
Guia contenido, contenido 3 corregida
1. fisiología del ar
Paz 2012
Roberto jimenez presem. informatika
Maira
Carrera De Submarinos
Loira sequestradora
Tipos de Gráficos
Publicidad

Similar a Carlos eduardo, documento de aplicacion en android (20)

DOCX
Documento de eloy
PDF
Aplicacion de agenda de contactos
PDF
Ejemplo bbdd sqlite (android)
PDF
Aplicación móvil
DOCX
PDF
Ejemplo Base de Datos SQLite (Android)
PDF
Aplication
PDF
Aplicacion movil con_bd
PDF
Aplicacion movil con_bd
PDF
Manual de Aplicación Móvil con Acceso a Datos
PDF
Aplicacion
PDF
Fo 5.desarrollo android-almacenamientodedatos
PDF
Tema 4.7 Acceso a datos
PPTX
PDF
Agendapersonal
PPT
Desarrollo android - 5 - almacenamiento de datos
PDF
Aplicacion movil
DOCX
DOCX
Documento de eloy
Aplicacion de agenda de contactos
Ejemplo bbdd sqlite (android)
Aplicación móvil
Ejemplo Base de Datos SQLite (Android)
Aplication
Aplicacion movil con_bd
Aplicacion movil con_bd
Manual de Aplicación Móvil con Acceso a Datos
Aplicacion
Fo 5.desarrollo android-almacenamientodedatos
Tema 4.7 Acceso a datos
Agendapersonal
Desarrollo android - 5 - almacenamiento de datos
Aplicacion movil

Más de yz8001 (8)

PDF
Mapa mental de Carlos Eduardo.
DOC
Mapa menta de Carlos Eduardo.
ODT
Manual de manejo de datos en dreamweaver.
DOCX
Ingles
DOCX
Tablacomparativadelprofeeloy
DOCX
carloseduardosanchezmartinez
DOCX
carlos eduardo sanchez martinez
PPTX
Presentacion de la maestra susana.
Mapa mental de Carlos Eduardo.
Mapa menta de Carlos Eduardo.
Manual de manejo de datos en dreamweaver.
Ingles
Tablacomparativadelprofeeloy
carloseduardosanchezmartinez
carlos eduardo sanchez martinez
Presentacion de la maestra susana.

Último (20)

PDF
Maste clas de estructura metálica y arquitectura
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Estrategia de apoyo tecnología miguel angel solis
PPT
Que son las redes de computadores y sus partes
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
taller de informática - LEY DE OHM
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
clase auditoria informatica 2025.........
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Diapositiva proyecto de vida, materia catedra
Maste clas de estructura metálica y arquitectura
Sesion 1 de microsoft power point - Clase 1
Calidad desde el Docente y la mejora continua .pdf
Estrategia de apoyo tecnología miguel angel solis
Que son las redes de computadores y sus partes
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
Propuesta BKP servidores con Acronis1.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
taller de informática - LEY DE OHM
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
historia_web de la creacion de un navegador_presentacion.pptx
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
clase auditoria informatica 2025.........
Zarate Quispe Alex aldayir aplicaciones de internet .docx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Presentación PASANTIAS AuditorioOO..pptx
Diapositiva proyecto de vida, materia catedra

Carlos eduardo, documento de aplicacion en android

  • 1. UNIVERSIDAD TECNOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN Materia Desarrollo de aplicaciones III Tema Documentación de la aplicación en android. Nombre completo del Alumno: Carlos Eduardo Sánchez Martínez. Grado: 5 Grupo: A Nombre del Docente: ITIC. Eloy Contreras de Lira Fecha de entrega: 21-03-2014.
  • 2. Lo primero que haremos es crear una clase que herede de SQLiteOpenHelper. Esta clase nos permite crear la base de datos y actualizar la estructura de tablas y datos iniciales. Debemos implementar el constructor y sobrescribir los métodos onCreate y onUpgrade. El método onCreate se le llama cuando la base de datos se crea por primera vez. Aquí es donde se define la estructura de las tablas y se cargan eventualmente los datos iniciales En el método onUpgrade se llama cuando la base de datos debe ser actualizada. Tiene por objetivo eliminar tablas, añadir tablas, o hacer cualquier otra cosa que necesita para actualizarse. Implementaremos una nueva clase llamada AdminSQLiteOpenHelper que herede de la clase SQLiteOpenHelper: package com.carlos.proyecto015; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; public class AdminSQLiteOpenHelper extends SQLiteOpenHelper { public AdminSQLiteOpenHelper(Context context, String nombre, CursorFactory factory, int version) { super(context, nombre, factory, version); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table votantes(dni integer primary key, nombre text, colegio text, nromesa integer)"); } @Override public void onUpgrade(SQLiteDatabase db, int versionAnte, int versionNue) { db.execSQL("drop table if exists votantes"); db.execSQL("create table votantes(dni integer primary key, nombre text, colegio text, nromesa integer)"); } }
  • 3. En el constructor solo llamamos al constructor de la clase padre pasando los datos que llegan en los parámetros: public AdminSQLiteOpenHelper(Context context, String nombre, CursorFactory factory, int version) { super(context, nombre, factory, version); } En el método onCreate procedemos a crear la tabla votantes con los cuatro campos respectivos y definiendo el campo dni como primary key: public void onCreate(SQLiteDatabase db) { db.execSQL("create table votantes(dni integer primary key, nombre text, colegio text, nromesa integer)"); } En el método onUpgrade procedemos a borrar la tabla votantes y crear nuevamente la tabla (en este caso con la misma estructura pero podría ser otra en un caso más real: public void onUpgrade(SQLiteDatabase db, int versionAnte, int versionNue) { db.execSQL("drop table if exists votantes"); db.execSQL("create table votantes(dni integer primary key, nombre text, colegio text, nromesa integer)"); } Ahora veamos la otra clase que implementará las altas, bajas, modificaciones y consultas: package com.javaya.proyecto015; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.Toast;
  • 4. public class MainActivity extends Activity { private EditText et1, et2, et3, et4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et1 = (EditText) findViewById(R.id.editText1); et2 = (EditText) findViewById(R.id.editText2); et3 = (EditText) findViewById(R.id.editText3); et4 = (EditText) findViewById(R.id.editText4); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void alta(View v) { AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd = admin.getWritableDatabase(); String dni = et1.getText().toString(); String nombre = et2.getText().toString(); String colegio = et3.getText().toString(); String nromesa = et4.getText().toString(); ContentValues registro = new ContentValues(); registro.put("dni", dni); registro.put("nombre", nombre); registro.put("colegio", colegio); registro.put("nromesa", nromesa); bd.insert("votantes", null, registro); bd.close(); et1.setText(""); et2.setText(""); et3.setText(""); et4.setText(""); Toast.makeText(this, "Se cargaron los datos de la persona", Toast.LENGTH_SHORT).show(); } public void consulta(View v) { AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd = admin.getWritableDatabase(); String dni = et1.getText().toString(); Cursor fila = bd.rawQuery( "select nombre,colegio,nromesa from votantes where dni=" + dni, null); if (fila.moveToFirst()) {
  • 5. et2.setText(fila.getString(0)); et3.setText(fila.getString(1)); et4.setText(fila.getString(2)); } else Toast.makeText(this, "No existe una persona con dicho dni", Toast.LENGTH_SHORT).show(); bd.close(); } public void baja(View v) { AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd = admin.getWritableDatabase(); String dni = et1.getText().toString(); int cant = bd.delete("votantes", "dni=" + dni, null); bd.close(); et1.setText(""); et2.setText(""); et3.setText(""); et4.setText(""); if (cant == 1) Toast.makeText(this, "Se borró la persona con dicho documento", Toast.LENGTH_SHORT).show(); else Toast.makeText(this, "No existe una persona con dicho documento", Toast.LENGTH_SHORT).show(); } public void modificacion(View v) { AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd = admin.getWritableDatabase(); String dni = et1.getText().toString(); String nombre = et2.getText().toString(); String colegio = et3.getText().toString(); String nromesa = et4.getText().toString(); ContentValues registro = new ContentValues(); registro.put("nombre", nombre); registro.put("colegio", colegio); registro.put("nromesa", nromesa); int cant = bd.update("votantes", registro, "dni=" + dni, null); bd.close(); if (cant == 1) Toast.makeText(this, "se modificaron los datos", Toast.LENGTH_SHORT) .show(); else Toast.makeText(this, "no existe una persona con dicho documento", Toast.LENGTH_SHORT).show(); } }
  • 6. 1 - Alta de datos. Cuando se presiona el botón alta se ejecuta el método "alta" debemos inicializar la propiedad "OnClick" del botón desde la ventana de visualización del archivo XML. Lo primero que hacemos en este método es crear un objeto de la clase que planteamos anteriormente y le pasamos al constructor this (referencia del Activity actual), "administración" (es el nombre de la base de datos que crearemos en el caso que no exista) luego pasamos null y un uno indicando que es la primer versión de la base de datos (en caso que cambiemos la estructura o agreguemos tablas por ejemplo podemos pasar un dos en lugar de un uno para que se ejecute el método onUpgrade donde indicamos la nuestra estructura de la base de datos) Luego de crear un objeto de la clase AdminSqLiteOpenHelper procedemos a crear un objeto de la clase SQLiteDataBase llamando al método getWritableDatabase (la base de datos se abre en modo lectura y escritura). Creamos un objeto de la clase ContentValues y mediante el método put inicializamos todos los campos a cargar. Seguidamente llamamos al método insert de la clase SQLiteDatabase pasando en el primer parámetro el nombre de la tabla, como segundo parámetro un null y por último el objeto de la clase ContentValues ya inicializado (este método es el que provoca que se inserte una nueva fila en la tabla votantes en la base de datos llamada administración) Borramos seguidamente los EditText y mostramos un mensaje para que conozca el operador que el alta de datos se efectuó en forma correcta: public void alta(View v) { AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd=admin.getWritableDatabase(); String dni=et1.getText().toString(); String nombre=et2.getText().toString(); String colegio=et3.getText().toString(); String nromesa=et4.getText().toString(); ContentValues registro=new ContentValues(); registro.put("dni",dni ); registro.put("nombre",nombre ); registro.put("colegio",colegio ); registro.put("nromesa",nromesa ); bd.insert("votantes", null, registro); bd.close(); et1.setText(""); et2.setText(""); et3.setText(""); et4.setText(""); Toast.makeText(this, "Se cargaron los datos de la persona", Toast.LENGTH_SHORT).show(); }
  • 7. 2 - Consulta de datos. Cuando se presiona el botón "Consulta por DNI" se ejecuta el método consulta: public void consulta(View v) { AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd=admin.getWritableDatabase(); String dni=et1.getText().toString(); Cursor fila=bd.rawQuery("select nombre,colegio,nromesa from votantes where dni="+dni+"",null); if (fila.moveToFirst()) { et2.setText(fila.getString(0)); et3.setText(fila.getString(1)); et4.setText(fila.getString(2)); } else Toast.makeText(this, "No existe una persona con dicho dni", Toast.LENGTH_SHORT).show(); bd.close(); } En el método consulta lo primero que hacemos es crear un objeto de la clase AdminSQLiteOpenHelper y obtener una referencia de la base de datos llamando al método getWritableDatabase. Seguidamente definimos una variable de la clase Cursor y la inicializamos con el valor devuelto por el método llamado rawQuery. La clase Cursos almacena en este caso una fila o cero filas (una en caso que hayamos ingresado un dni existente en la tabla votantes), llamamos al método moveToFirst () de la clase Cursos y retorna true en caso de existir una persona con el dni ingresado, en caso contrario retorna cero. Para recuperar los datos propiamente dichos que queremos consultar llamamos al método getString y le pasamos la posición del campo a recuperar (comienza a numerarse en cero, en este ejemplo la columna cero representa el campo nombre, la columna 1 representa el campo colegio y la columna 2 representa el campo nromesa) 3 - Baja o borrado de datos. Para borrar uno o más registros la clase SQLiteDatabase tiene un método que le pasamos en el primer parámetro el nombre de la tabla y en el segundo la condición que debe cumplirse para que se borre la fila de la tabla. El método delete retorna un entero que indica la cantidad de registros borrados:
  • 8. public void baja(View v) { AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd=admin.getWritableDatabase(); String dni=et1.getText().toString(); int cant=bd.delete("votantes", "dni="+dni+"",null); bd.close(); et1.setText(""); et2.setText(""); et3.setText(""); et4.setText(""); if (cant==1) Toast.makeText(this, "Se borró la persona con dicho documento", Toast.LENGTH_SHORT).show(); else Toast.makeText(this, "No existe una persona con dicho documento", Toast.LENGTH_SHORT).show(); } 4 - Modificación de datos. En la modificación de datos debemos crear un objeto de la clase ContentValues y mediante el método put almacenar los valores para cada campo que será modificado. Luego se llama al método update de la clase SQLiteDatabase pasando el nombre de la tabla, el objeto de la clase ContentValues y la condición del where (el cuanto parámetro en este ejemplo no se lo emplea) public void modificacion(View v) { AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1); SQLiteDatabase bd=admin.getWritableDatabase(); String dni=et1.getText().toString(); String nombre=et2.getText().toString(); String colegio=et3.getText().toString(); String nromesa=et4.getText().toString(); ContentValues registro=new ContentValues(); registro.put("nombre",nombre); registro.put("colegio",colegio); registro.put("nromesa",nromesa); int cant = bd.update("votantes", registro, "dni="+dni, null); bd.close(); if (cant==1) Toast.makeText(this, "se modificaron los datos", Toast.LENGTH_SHORT).show(); else Toast.makeText(this, "no existe una persona con dicho documento", Toast.LENGTH_SHORT).show(); }