Desarrollo de App Android(002) para dispositivos móviles
Practica 002 (agosto 2015)
Ing. Honoria Reyes Macedo
Tomando en cuenta que ya se termino la practica 001 Continuar con la siguiente practica.
Nota: Recordar que cada etiqueta dada de alta en el archivo strings.xml la usaremos en las interfaces(Activity). Observa que las etiquetas empiezan con "c_lbl", los campos de texto con "c_txt" y los menus empiezan con "act_"
2.- Verifica y completa tu archivo activity_inserta_alumno.xml
Qudaria asi:
Ing. Honoria Reyes Macedo
Tomando en cuenta que ya se termino la practica 001 Continuar con la siguiente practica.
Introducción: En esta práctica se crea la base de datos en SQLite.
SQLite es un Sistema Gestor
de Base de Datos Relacional(RDBMS) que esta integrada mediante librerías
en Android Studio. Se basa en (SQL)
- Para ver la base de Datos creada en el emulador, buscar en la opción "Android Device Monitor"
2.- Verifica y completa tu archivo activity_inserta_alumno.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.uvm.sistemas.appinsertar.InsertaAlumno">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblcve"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVCve" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="@string/c_txtcve"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTCve" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblnombre"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVnombre" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtnombre"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTnombre" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblappaterno"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVappaterno" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtappaterno"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTappaterno" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblapmaterno"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVapmaterno" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtapmaterno"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTapmaterno" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblpwd"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVPwd" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtpwd"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTpwd" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblstatus"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVStatus" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_txtstatus"
android:id="@+id/checkBoxStatus" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Guardar"
android:layout_marginLeft="40dp"
android:id="@+id/btnGuardar" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.uvm.sistemas.appinsertar.InsertaAlumno">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblcve"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVCve" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="@string/c_txtcve"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTCve" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblnombre"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVnombre" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtnombre"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTnombre" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblappaterno"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVappaterno" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtappaterno"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTappaterno" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblapmaterno"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVapmaterno" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtapmaterno"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTapmaterno" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblpwd"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVPwd" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/c_txtpwd"
android:textColor="#ffc26e18"
android:textSize="20sp"
android:id="@+id/editTpwd" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_lblstatus"
android:textColor="#ffc26e18"
android:textSize="25sp"
android:id="@+id/textVStatus" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/c_txtstatus"
android:id="@+id/checkBoxStatus" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Guardar"
android:layout_marginLeft="40dp"
android:id="@+id/btnGuardar" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
Qudaria asi:
3.- Crear una clase AlumnoEntity.class
a) Inicializar variables
b) Seleccionar el menu Refactor + Encapsulate Fields para generer sus
get y set
c) Marcar todas las variables para
que genere sus get y set
Quedara Asi:
Agregar los siguientes metodos:
d) Agregar dos metodos a la clase
private String campos;
private String tabla;
public String getTabla(){
this.tabla="alumno";
return tabla;
}
public String getCampos(){
this.campos= "cvealumnoID Integer primary key, " +
"nombre Text, " +
"appaterno Text, " +
"apmaterno Text, " +
"pasword Text, " +
"estatus Integer " ;
/** "fechaactualiza datetime";*/
return campos;
}
private String tabla;
public String getTabla(){
this.tabla="alumno";
return tabla;
}
public String getCampos(){
this.campos= "cvealumnoID Integer primary key, " +
"nombre Text, " +
"appaterno Text, " +
"apmaterno Text, " +
"pasword Text, " +
"estatus Integer " ;
/** "fechaactualiza datetime";*/
return campos;
}
4.- Crear la clase DBhelper.class
package com.uvm.sistemas.appinsertar;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBhelper extends SQLiteOpenHelper {
AlumnoEntity campohelp = new AlumnoEntity();
static final String DB_NAME = "demo";
static final int DB_VERSION = 1;
private final String CREATE_TABLE = "create table if not exists "
+ campohelp.getTabla() + "(" + campohelp.getCampos() + " );";
public DBhelper(Context context) {
super(context, DB_NAME, null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + campohelp.getTabla());
onCreate(db);
}
}
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBhelper extends SQLiteOpenHelper {
AlumnoEntity campohelp = new AlumnoEntity();
static final String DB_NAME = "demo";
static final int DB_VERSION = 1;
private final String CREATE_TABLE = "create table if not exists "
+ campohelp.getTabla() + "(" + campohelp.getCampos() + " );";
public DBhelper(Context context) {
super(context, DB_NAME, null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + campohelp.getTabla());
onCreate(db);
}
}
5.- Crear la clase AlumnoDAO.class
package com.uvm.sistemas.appinsertar;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.sql.SQLException;
public class AlumnoDAO {
private Context ourcontext;
private SQLiteDatabase database;
private DBhelper dbhelper;
public AlumnoDAO(Context c){
ourcontext= c;
}
public AlumnoDAO abrirBD()throws SQLException{
dbhelper= new DBhelper(ourcontext);
database = dbhelper.getWritableDatabase();
return this;
}
public void cerrarBD(){
dbhelper.close();
}
public long insertar(AlumnoEntity alumn)throws SQLException{
ContentValues registro = new ContentValues();
long result=1;
registro.put("cvealumnoid", alumn.getCvealumnoID());
registro.put("nombre", alumn.getNombre());
registro.put("appaterno", alumn.getAppaterno());
registro.put("apmaterno", alumn.getApmaterno());
registro.put("pasword", alumn.getPasword());
registro.put("estatus", alumn.getEstatus());
result = database.insert(alumn.getTabla(),null,registro);
Log.d("result", String.valueOf(result));
return result;
}
public long buscarMax(){
return 1;
}
}
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.sql.SQLException;
public class AlumnoDAO {
private Context ourcontext;
private SQLiteDatabase database;
private DBhelper dbhelper;
public AlumnoDAO(Context c){
ourcontext= c;
}
public AlumnoDAO abrirBD()throws SQLException{
dbhelper= new DBhelper(ourcontext);
database = dbhelper.getWritableDatabase();
return this;
}
public void cerrarBD(){
dbhelper.close();
}
public long insertar(AlumnoEntity alumn)throws SQLException{
ContentValues registro = new ContentValues();
long result=1;
registro.put("cvealumnoid", alumn.getCvealumnoID());
registro.put("nombre", alumn.getNombre());
registro.put("appaterno", alumn.getAppaterno());
registro.put("apmaterno", alumn.getApmaterno());
registro.put("pasword", alumn.getPasword());
registro.put("estatus", alumn.getEstatus());
result = database.insert(alumn.getTabla(),null,registro);
Log.d("result", String.valueOf(result));
return result;
}
public long buscarMax(){
return 1;
}
}
6.- Agrega el código al
archivo InsertaAlumno.class de la práctica
anterior
package
com.uvm.sistemas.appinsertar;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class InsertaAlumno extends ActionBarActivity implements View.OnClickListener {
private EditText etcve, etnombre, etappat, etapmat, etpasw;
private CheckBox etest;
Button agregar;
AlumnoDAO alumnBD;
AlumnoEntity alumnDatos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inserta_alumno);
agregar=(Button) findViewById(R.id.btnGuardar);
alumnBD = new AlumnoDAO(this);
alumnDatos = new AlumnoEntity();
agregar.setOnClickListener(this);
etcve =(EditText) findViewById(R.id.editTCve);
etnombre =(EditText) findViewById(R.id.editTnombre);
etappat =(EditText) findViewById(R.id.editTappaterno);
etapmat =(EditText) findViewById(R.id.editTapmaterno);
etpasw =(EditText) findViewById(R.id.editTpwd);
etest =(CheckBox) findViewById(R.id.checkBoxStatus);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnGuardar:
try {
preparaDatos();
alumnBD.abrirBD();
alumnBD.insertar(alumnDatos);
Toast.makeText(this, "Registro Insertado con Exito", Toast.LENGTH_LONG).show();
alumnBD.cerrarBD();
}catch (Exception e ){
Toast.makeText(this, "Error de Insercion: " + e, Toast.LENGTH_LONG).show();
}
}
}
public void preparaDatos(){
int bandera=0;
alumnDatos.setCvealumnoID(Integer.valueOf(etcve.getText().toString()));
alumnDatos.setNombre(etnombre.getText().toString());
alumnDatos.setAppaterno(etappat.getText().toString());
alumnDatos.setApmaterno(etapmat.getText().toString());
alumnDatos.setPasword(etpasw.getText().toString());
if (etest.isChecked()) {bandera=1;}
alumnDatos.setEstatus(bandera);
}
}
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
public class InsertaAlumno extends ActionBarActivity implements View.OnClickListener {
private EditText etcve, etnombre, etappat, etapmat, etpasw;
private CheckBox etest;
Button agregar;
AlumnoDAO alumnBD;
AlumnoEntity alumnDatos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inserta_alumno);
agregar=(Button) findViewById(R.id.btnGuardar);
alumnBD = new AlumnoDAO(this);
alumnDatos = new AlumnoEntity();
agregar.setOnClickListener(this);
etcve =(EditText) findViewById(R.id.editTCve);
etnombre =(EditText) findViewById(R.id.editTnombre);
etappat =(EditText) findViewById(R.id.editTappaterno);
etapmat =(EditText) findViewById(R.id.editTapmaterno);
etpasw =(EditText) findViewById(R.id.editTpwd);
etest =(CheckBox) findViewById(R.id.checkBoxStatus);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.btnGuardar:
try {
preparaDatos();
alumnBD.abrirBD();
alumnBD.insertar(alumnDatos);
Toast.makeText(this, "Registro Insertado con Exito", Toast.LENGTH_LONG).show();
alumnBD.cerrarBD();
}catch (Exception e ){
Toast.makeText(this, "Error de Insercion: " + e, Toast.LENGTH_LONG).show();
}
}
}
public void preparaDatos(){
int bandera=0;
alumnDatos.setCvealumnoID(Integer.valueOf(etcve.getText().toString()));
alumnDatos.setNombre(etnombre.getText().toString());
alumnDatos.setAppaterno(etappat.getText().toString());
alumnDatos.setApmaterno(etapmat.getText().toString());
alumnDatos.setPasword(etpasw.getText().toString());
if (etest.isChecked()) {bandera=1;}
alumnDatos.setEstatus(bandera);
}
}
7.- Probrarlo hasta que no tenga Errores
Nota: Utilizar los siguientes mensajes en caso de que se quiera ir rastreando los lugares donde pasa la ejecucion del programa:
a) Para clases que estan ligadas a un .XML
Toast.makeText(this,"Si pasa por Aqui",Toast.LENGTH_LONG).show();
b) Para las clases que no estan ligadas a un .XML
Log.d("MyApp", "Estoy Aqui");
Toast.makeText(this,"Si pasa por Aqui",Toast.LENGTH_LONG).show();
b) Para las clases que no estan ligadas a un .XML
Log.d("MyApp", "Estoy Aqui");
package
com.uvm.sistemas.appinsertar;
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ConsultaAlumno extends ActionBarActivity {
AlumnoDAO alumnBD;
AlumnoEntity alumnDatos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_consulta_alumno);
cargarAlumnos();
}
public void cargarAlumnos() {
alumnBD = new AlumnoDAO(this);
alumnDatos = new AlumnoEntity();
/**alumnBD.abrirBD();*/
try {
String[] AllDatos = alumnBD.consultar(alumnDatos);
ArrayAdapter<String> adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, AllDatos);
ListView Lista = (ListView) findViewById(R.id.listVAlumn);
Lista.setAdapter(adapter);
Toast.makeText(this, "LLeno el arreglo", Toast.LENGTH_LONG).show();
}catch (Exception e){
Toast.makeText(this, "Error de Consulta: " + e, Toast.LENGTH_LONG).show();
}
}
}
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ConsultaAlumno extends ActionBarActivity {
AlumnoDAO alumnBD;
AlumnoEntity alumnDatos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_consulta_alumno);
cargarAlumnos();
}
public void cargarAlumnos() {
alumnBD = new AlumnoDAO(this);
alumnDatos = new AlumnoEntity();
/**alumnBD.abrirBD();*/
try {
String[] AllDatos = alumnBD.consultar(alumnDatos);
ArrayAdapter<String> adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, AllDatos);
ListView Lista = (ListView) findViewById(R.id.listVAlumn);
Lista.setAdapter(adapter);
Toast.makeText(this, "LLeno el arreglo", Toast.LENGTH_LONG).show();
}catch (Exception e){
Toast.makeText(this, "Error de Consulta: " + e, Toast.LENGTH_LONG).show();
}
}
}










No hay comentarios.:
Publicar un comentario