0% encontró este documento útil (0 votos)
43 vistas12 páginas

Lab Android02 18 06 22

XVXVXVC

Cargado por

silvestre004
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
43 vistas12 páginas

Lab Android02 18 06 22

XVXVXVC

Cargado por

silvestre004
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Proyecto AppColegio21

Mostramos una lista de docente

1. Primero creamos los paquetes damos la forma al modelo

1
1 PAQUETE LAYOUT: Activitys
2. Luego creamos los siguientes activity
Descargar los xml y agregar los siguientes activity ojo data es un Layaut Resource File

Antes de copiar datos.xml copiar el arreglos que esta en string


Nota: el data agregar asi

3. EN PAQUETE ENTIDAD :Crear la clase docente implements Serializable

Serializable es una clase ubicada en el paquete Java. io. Serializable, la cual no cuenta con
ningún método, por lo que es una clase que sirve solamente para especificar que todo el
estado de un objeto instanciado podrá ser escrito o

2
2. PAQUETES EN JAVA

2.1 PACKAGE entidad


CLASE docente.java
La clase docente tendrá atributos corresponda a lo que vamos a desarrollar
public class docente {
//atributos
private int codigo;
private String nombres;
private String paterno;
private String materno;
private String sexo;
private int hijos;
private double sueldo;
//constructor no es necesario por default se asume
// Generar los métodos de acceso get/set

public int getCodigo() {


return codigo;
}

public void setCodigo(int codigo) {


this.codigo = codigo;
}

public String getNombres() {


return nombres;
}

public void setNombres(String nombres) {


this.nombres = nombres;
}

public String getPaterno() {


return paterno;
}

public void setPaterno(String paterno) {


this.paterno = paterno;
}

public String getMaterno() {


return materno;
}

3
public void setMaterno(String materno) {
this.materno = materno;
}

public String getSexo() {


return sexo;
}

public void setSexo(String sexo) {


this.sexo = sexo;
}

public int getHijos() {


return hijos;
}

public void setHijos(int hijos) {


this.hijos = hijos;
}

public double getSueldo() {


return sueldo;
}

public void setSueldo(double sueldo) {


this.sueldo = sueldo;
}
}
2.2 PAQUETE data
CLASE SqlOpenHelper
public class SqlOpenHelper extends SQLiteOpenHelper {
public SqlOpenHelper(Context contexto){

super(contexto,"consorcio.db",null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
//creamos la tabla y agregamos registros
db.execSQL("create table tb_docente("+
"cod integer primary key autoincrement,"+
"nom varchar(25),"+
"pat varchar(25),"+
"mat varchar(25),"+
"sexo varchar(15),"+
"hijos int,"+
"sueldo double)");
db.execSQL("insert into tb_docente
values(null,'Ana','Soto','Ayala','Femenino',2,1500)");
db.execSQL("insert into tb_docente
values(null,'Alicia','Rivera','Palacios','Femenino',1,2500)");
db.execSQL("insert into tb_docente
values(null,'Luis','Mora','Oca','Masculino',4,500)");

@Override

4
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {

}
}

2.3 PAQUETE dao


Clase : DocenteDAOImpl

public class DocenteDAOImpl {


//declarar un objeto de la clase SqlOpenHelper
SqlOpenHelper admin;
public DocenteDAOImpl(Context contexto){
admin=new SqlOpenHelper(contexto);
}

//mètodo que retorna una lista de docentes


public ArrayList<Docente> listaDocentes(){
ArrayList<Docente> data=new ArrayList<Docente>();
Docente bean=null;

SQLiteDatabase base=admin.getReadableDatabase();

Cursor cursor=base.rawQuery("select * from tb_docente",null);


while (cursor.moveToNext()){ //cursor es como rs y movetoNext como
next rs.next de java
bean=new Docente(); //creo objeto bean de la clase Docente
bean.setCodigo(cursor.getInt(0));//en sqlite la columna
empieza de 0 en este caso tu tabla el cod primer campo es int
bean.setNombres(cursor.getString(1)); //asignar valor a los
atributo objeto bean con la fila actual
bean.setPaterno(cursor.getString(2));
bean.setMaterno(cursor.getString(3));
bean.setSexo(cursor.getString(4));
bean.setHijos(cursor.getInt(5));
bean.setSueldo(cursor.getDouble(6));
data.add(bean); //enviar la lista
}
return data;
}
//registrar
public int registrarDocente(Docente bean){
int salida=-1;
//abrir acceso a la bd en modo escritura
SQLiteDatabase base=admin.getWritableDatabase();
//Crear objeto de la clase ContentValues, dicha clase trabajaa con
claves y valores
ContentValues contentValues=new ContentValues();
//claves son nombres de los campos de la tabla
//values son atributos del objeto bean
contentValues.put("nom",bean.getNombres());
contentValues.put("pat",bean.getPaterno());
contentValues.put("mat",bean.getMaterno());
contentValues.put("sexo",bean.getSexo());
contentValues.put("hijos",bean.getHijos());
contentValues.put("sueldo",bean.getSueldo());
//llamar al mètodo insert
salida=(int)base.insert("tb_docente","cod",contentValues);

5
return salida;
}
//actualizar
public int actualizarDocente(Docente bean){
int salida=-1;
//abrir acceso a la bd en modo escritura
SQLiteDatabase base=admin.getWritableDatabase();
//Crear objeto de la clase ContentValues, dicha clase trabajaa con
claves y valores
ContentValues contentValues=new ContentValues();
//claves son nombres de los campos de la tabla
//values son atributos del objeto bean
contentValues.put("cod",bean.getCodigo());
contentValues.put("nom",bean.getNombres());
contentValues.put("pat",bean.getPaterno());
contentValues.put("mat",bean.getMaterno());
contentValues.put("sexo",bean.getSexo());
contentValues.put("hijos",bean.getHijos());
contentValues.put("sueldo",bean.getSueldo());
//llamar al mètodo insert

salida=base.update("tb_docente",contentValues,"cod="+bean.getCodigo(),
null);
return salida;
}
//eliminar
public int eliminarDocente(int codigo) {
int salida = -1;
//abrir acceso a la bd en modo escritura
SQLiteDatabase base = admin.getWritableDatabase();
salida=base.delete("tb_docente","cod="+codigo,null);

return salida;
}

}
//admin es como mi conexion como cn
//crear objeto "admin" de la clase SqlOpenHelper su parametro es
context entonces hago casting Context

//crear un objeto de la clase SQLiteDatabase en modo lectura


ojo hay 2 acceso lectura para select
// y escritura inserta,actualiza,elimina
//este objeto no lo creo con new para su creación sino llamo a
otras para hacer el new ejemplo
//el preparestament, resultset ahi no cre ps,rs asigno no creo
con new
//en este caso la creacion de este objeto esta en funcion de
la conexion es decir admin
//almacenar el valor de retorno de un SELECT
//método rawQuery realiza consultas pero este pertenece a la
clase Sqldatabase
//rawquery es sobrecargado tiene varios parametros utilizamos
2 sentencia, string arreglo si hay condicion
//en este caso no hay where por eso coloco null no existe
segundo parametro

//de datos y hay que guardarlo en un lugar en este caso un objeto


de la clase cursor

6
//bucle

7
2.4 PAQUETE adaptador
Clase AdaptadorDocente
public class AdaptadorDocente extends BaseAdapter {
private ArrayList<Docente> lista;
private Context contexto;

public AdaptadorDocente(ArrayList<Docente> lista, Context


contexto) {
this.lista = lista;
this.contexto = contexto;
}

@Override
public int getCount() {
return lista.size();
}

@Override
public Object getItem(int position) {
return lista.get(position);
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup
parent) {
View row;
TextView tvCodigo,tvNombre,tvPaterno,tvMaterno;

//crear inflador
LayoutInflater inflater=(LayoutInflater)

contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=inflater.inflate(R.layout.data,parent,false);
tvCodigo= row.findViewById(R.id.tvCodigo);
tvNombre=row.findViewById(R.id.tvNombre);
tvPaterno=row.findViewById(R.id.tvPaterno);
tvMaterno=row.findViewById(R.id.tvMaterno);
tvCodigo.setText(""+lista.get(position).getCodigo());
tvNombre.setText(lista.get(position).getNombres());
tvPaterno.setText(lista.get(position).getPaterno());
tvMaterno.setText(lista.get(position).getMaterno());

return row;
}
clase MainActivity.java

Button btnNuevo;
ListView lstDocentes;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

8
setContentView(R.layout.activity_main);

btnNuevo=findViewById(R.id.btnNuevo);
lstDocentes=findViewById(R.id.lstDocentes);
//
btnNuevo.setOnClickListener(this);
lstDocentes.setOnItemClickListener(this);
//invocar
cargar();
}
void cargar(){
DocenteDAOImpl dao=new DocenteDAOImpl(this);
ArrayList<Docente> lista=dao.listaDocentes();
//adaptador
AdaptadorDocente adaptador=new AdaptadorDocente(lista,this);
//mostrar el adaptador en el ListView
lstDocentes.setAdapter(adaptador);
}

@Override
public void onClick(View v) {
Intent intent=new Intent(this,nuevo.class);
startActivity(intent);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//obtener el Docente segùn lo seleccionado en el ListView
Docente bean= (Docente) lstDocentes.getItemAtPosition(position);
Intent intent=new Intent(this,datos.class);
intent.putExtra("docente",bean); //este error es porque la clase docente
//debe ser serializada
startActivity(intent);
}

OJO

Cuando agrege código en la clase main activity saldrá un error

9
Error: Una clave no puede almacenar un objeto

Solución : debemos serializar la clase recuerda el bean es un objeto de la clase docente, todo
parte de la clase.

Serializamos asi serializar es convertir en bytes, cuando la clase es serializada , porque envio
de un activity a otro un objeto por eso se convierte a bytes

Clase datos.java
public class datos extends AppCompatActivity implements
View.OnClickListener {
TextView tvCodigo;
EditText edtNombre,edtPaterno,edtMaterno,edtSueldo,edtHijos;
Spinner spnSexo;
Button btnActualizar,btnEliminar, btnRegresar;
//
DocenteDAOImpl daoDocente=new DocenteDAOImpl(this);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_datos);

tvCodigo=(TextView) findViewById(R.id.tvCodigo);
edtNombre=(EditText) findViewById(R.id.edtNombre);
edtPaterno=(EditText) findViewById(R.id.edtPaterno);
edtMaterno=(EditText) findViewById(R.id.edtMaterno);
edtSueldo=(EditText) findViewById(R.id.edtSueldo);
edtHijos=(EditText) findViewById(R.id.edtHijos);
spnSexo=(Spinner) findViewById(R.id.spnSexo);
btnActualizar=(Button) findViewById(R.id.btnActualizar);
btnEliminar=(Button) findViewById(R.id.btnEliminar);
btnRegresar=(Button) findViewById(R.id.btnRegresar);
btnActualizar.setOnClickListener(this);
btnEliminar.setOnClickListener(this);
btnRegresar.setOnClickListener(this);
//
cargar();

public void onClick(View v) {


if(v==btnActualizar){

10
//Crear un objeto de la clase Docente y setear sus
atributos con los controles
Docente bean=new Docente();

bean.setCodigo(Integer.parseInt(tvCodigo.getText().toString()));
bean.setNombres(edtNombre.getText().toString());
bean.setPaterno(edtPaterno.getText().toString());
bean.setMaterno(edtMaterno.getText().toString());
bean.setSexo(spnSexo.getSelectedItem().toString());

bean.setHijos(Integer.parseInt(edtHijos.getText().toString()));

bean.setSueldo(Double.parseDouble(edtSueldo.getText().toString()));
daoDocente.actualizarDocente(bean);
}
if(v==btnEliminar){
//leer codigo
int cod;
cod=Integer.parseInt(tvCodigo.getText().toString());
daoDocente.eliminarDocente(cod);
}
if(v==btnRegresar){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}

void cargar(){
Docente doc= (Docente)
getIntent().getSerializableExtra("docente");
tvCodigo.setText(""+doc.getCodigo());
edtNombre.setText(doc.getNombres());
edtPaterno.setText(doc.getPaterno());
edtMaterno.setText(doc.getMaterno());
edtSueldo.setText(""+doc.getSueldo());
edtHijos.setText(""+doc.getHijos());
//recuperar el adaptador del Spinner spnSexo
ArrayAdapter adapter= (ArrayAdapter) spnSexo.getAdapter();
//variable para alcenar el sexo del Docente
String sexo=doc.getSexo();
//obtener la posiciòn de la variable sexo dentro del adapter
int posicion=adapter.getPosition(sexo);
//mostrar el valor de la posicion en el spinner
spnSexo.setSelection(posicion);

//spnSexo;
}

nuevo.java
public class MainNuevo extends AppCompatActivity implements
View.OnClickListener {
EditText edtNombreN,edtPaternoN,edtMaternoN,edtSueldoN,edtHijosN;
Spinner spnSexoN;
Button btnRegistrar, btnRegresarN;
//
DocenteDAOImpl daoDocente=new DocenteDAOImpl(this);

11
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_nuevo);

edtNombreN=(EditText) findViewById(R.id.edtNombreN);
edtPaternoN=(EditText) findViewById(R.id.edtPaternoN);
edtMaternoN=(EditText) findViewById(R.id.edtMaternoN);
edtSueldoN=(EditText) findViewById(R.id.edtSueldoN);
edtHijosN=(EditText) findViewById(R.id.edtHijosN);
spnSexoN=(Spinner) findViewById(R.id.spnSexoN);
btnRegistrar=(Button) findViewById(R.id.btnRegistrar);
btnRegresarN=(Button) findViewById(R.id.btnRegresarN);
btnRegistrar.setOnClickListener(this);
btnRegresarN.setOnClickListener(this);
//

@Override
public void onClick(View v) {
if(v==btnRegistrar){
//Crear un objeto de la clase Docente y setear sus
atributos con los controles
Docente bean=new Docente();
bean.setNombres(edtNombreN.getText().toString());
bean.setPaterno(edtPaternoN.getText().toString());
bean.setMaterno(edtMaternoN.getText().toString());
bean.setSexo(spnSexoN.getSelectedItem().toString());

bean.setHijos(Integer.parseInt(edtHijosN.getText().toString()));

bean.setSueldo(Double.parseDouble(edtSueldoN.getText().toString()));
daoDocente.registrarDocente(bean);
}

if(v==btnRegresarN){
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}

12

También podría gustarte