Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ANDROID PARCIAL II
Confeccionar un programa que permita almacenar los datos de artculos. Crear la tabla artculos
y definir los campos cdigo, descripcin del articulo y precio.
El programa debe permitir:
1 - Carga de artculo.
2 - Consulta por el cdigo.
3 - Consulta por la descripcin.
4 - Borrado de un artculo ingresando su cdigo.
4 - Modificacin de la descripcin y el precio.
Page 1 of 17
Control
Text
Id
Mediumt
ext
Number
Mediumt
ext
Number
Mediumt
ext
Number
Button
Button
Cdigo de
artculo:
textview
Descripci
n:
Precio:
Alta
Consulta
por cdigo
OnClick
Comentario
s
editText
textview2
editText2
textview3
editText3
button
button2
alta
consultaporcodigo
Page 2 of 17
Button
Button
Consulta
por
descripci
n
Baja por
cdigo
Modificaci
n
button3
consultapordescri
pcion
button4
bajaporcodigo
button5
modificacion
Propuesto:
Uso de herramienta nativa de Android para almacenar datos en una base de datos llamada
SQLite.
SQLite es una base de datos Open Source, es muy popular en muchos dispositivos pequeos,
como Android.
Las ventajas que presenta utilizar SQLite es que no requiere configuracin, no tiene un servidor
de base de datos ejecutndose en un proceso separado y es relativamente simple su empleo..
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.
Para crear una nueva clase desde Android Studio procedemos a presionar el botn derecho del
mouse sobre la carpeta que contienen todos los archivo java del proyecto y seleccionamos New > Java Class:
Page 3 of 17
Page 4 of 17
Ahora tenemos que codificar esta clase que tiene por objetivo administrar la base de datos que
crearemos. Primero hacemos que nuestra clase herede de la clase SQLiteOpenHelper:
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by diegomoisset on 06/01/2015.
*/
public class AdminSQLiteOpenHelper extends SQLiteOpenHelper{
}
Page 5 of 17
Pero todava nos marca un error ya que la clase padre SQLiteOpenHelper implementa
constructores que tienen parmetros, entonces tenemos que definir el constructor en esta clase,
para ello estando el cursor sobre el nombre de la clase "AdminSQLiteOpenHelper" presionamos
nuevamente las teclas "ALT" y "Enter" y en el men contectual que aparece seleccionamos
"Create constructor matching super". Aparece un dilogo con todos los constructores que
implementa la clase padre (seleccionammos el que tiene tres parmetros):
Page 6 of 17
2.1
Hemos codificado en el mtodo onCreate la creacin de la tabla articulos con los campos codigo
(que es entero y clave primaria), descripcion que es de tipo texto y precio es un valor real. El
mtodo onCreate se ejecutar una nica vez (Eventualmente si uno quiere modificar la estructura
de la tabla debemos hacerlo en el mtodo onUpgrade).
Ahora implementemos la interfaz visual para resolver nuestro problema. Debemos crear en
nuestro archivo activity_main.xml la siguiente interfaz:
Page 7 of 17
Page 8 of 17
2.2
MAINACTIVITY.JAVA
android.content.ContentValues;
android.database.Cursor;
android.database.sqlite.SQLiteDatabase;
android.support.v7.app.ActionBarActivity;
android.os.Bundle;
android.view.Menu;
android.view.MenuItem;
android.view.View;
android.widget.EditText;
android.widget.Toast;
et1=(EditText)findViewById(R.id.editText);
et2=(EditText)findViewById(R.id.editText2);
et3=(EditText)findViewById(R.id.editText3);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
Page 9 of 17
return super.onOptionsItemSelected(item);
Page 10 of 17
Recordar de inicializar la propiedad onClick de cada botn para enlazarlo con el mtodo
respectivo: "alta","consultaporcodigo","consultapordescripcion","bajaporcodigo" y
"modificacion".
Lo primero que hacemos en este mtodo es crear un objeto de la clase que planteamos
anteriormente y le pasamos al constructor this (referencia del Activity actual), "administracion"
(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 versin 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 mtodo 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 mtodo getWritableDatabase (la base de datos se abre en
modo lectura y escritura).
Creamos un objeto de la clase ContentValues y mediante el mtodo put inicializamos todos tos
campos a cargar.
Seguidamente llamamos al mtodo insert de la clase SQLiteDatabase pasando en el primer
parmetro el nombre de la tabla, como segundo parmetro un null y por ltimo el objeto de la
clase ContentValues ya inicializado (este mtodo es el que provoca que se inserte una nueva fila
en la tabla articulos en la base de datos llamada administracion)
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 cod = et1.getText().toString();
String descri = et2.getText().toString();
String pre = et3.getText().toString();
ContentValues registro = new ContentValues();
registro.put("codigo", cod);
registro.put("descripcion", descri);
registro.put("precio", pre);
bd.insert("articulos", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
Toast.makeText(this, "Se cargaron los datos del artculo",
Toast.LENGTH_SHORT).show();
}
Page 12 of 17
Page 13 of 17
Esto es obligatorio para los campos de tipo text (en este caso descripcion es de tipo text).
Page 14 of 17
Page 15 of 17
Page 16 of 17
2.4
BIBLIOGRAFAS
http://www.javaya.com.ar
http://www.flanagan.ugr.es
http://www.marcombo.com
http://ocw.uc3m.es
Page 17 of 17