Lab Android02 18 06 22
Lab Android02 18 06 22
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
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
3
public void setMaterno(String materno) {
this.materno = materno;
}
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) {
}
}
SQLiteDatabase base=admin.getReadableDatabase();
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
6
//bucle
7
2.4 PAQUETE adaptador
Clase AdaptadorDocente
public class AdaptadorDocente extends BaseAdapter {
private ArrayList<Docente> lista;
private Context 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
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();
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