Desarrollo de App Android(004) para dispositivos móviles
Practica 004 (agosto 2015)
Ing. Honoria Reyes Macedo
Ing. Honoria Reyes Macedo
Para la seleccion de horarios considerar los siguientes puntos:
1.- Al seleccionar la materia que me presente la opcion de escoger un horario. queda abierto a tu criterio2.- Al seleccionar horario Ira guardando en un objeto de la clase AlumnoMateriaEntity.java (crear esta clase como en la practica 2). Nota: Recuerda que la imagen de la materia ya trae el numero de carrera(01), numero de materia(03), numero de cuatrimestre(02), posicion en la columna(04). ejemplo de m02040103.png3.- Agregar boton Guardar. Al seleccionar este boton mostrara los valores guardados en el objeto creado en el punto anterior
SELECCIÓN DE HORARIO
1.- Crear un activity horariomostrar: Observar los archivos que se generan
activity_horariomostrar.xml y horariomostrar.java
2.- Crear la clase MateriaDisponibleEntity.java
public class MateriaDisponibleEntity {private Integer cvemateriadisponibleid;
private String Horarionombre; private String horariodescripcion; private Integer cvecarreraID; private Integer cvemateriaID; private Integer horarionumero; private String cveperiodoID; private Integer cveprofesorID; private Integer cvesalonID; private String fechainicia; private String fechatermina;
public void MateriaDisponibleEntity(){ }
)
)
Generar sus get y set como en la practica 2
3.- Crear la clase HorarioDisponibleDAO.java
NOTA: Cuando ya se tengan los catalogos del horario se quitará la parte de generar tablas y su llenado
import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import java.sql.SQLException;
public class HorarioDisponibleDAO { private Context ourcontext; private SQLiteDatabase database; private DBhelper dbhelper; public HorarioDisponibleDAO(Context c){ ourcontext= c; } public String[] ConsultaHoraDisponible(MateriaDisponibleEntity mdisp) throws SQLException { dbhelper= new DBhelper(ourcontext); database = dbhelper.getReadableDatabase(); String allMaterias[]= new String[0]; if(database != null) { String CREATE_TABLE = "create table if not exists dia(cvediaid Integer, nomdia Text)"; String CREATE_TABLE2 = "create table if not exists horas(horaid Integer, cvediaid Integer,horainicio Text,horatermina Text, estatus Integer)"; String CREATE_TABLE3 = "create table if not exists horario(cvemateriadisponibleid Integer,cvecarreraid Integer,cvemateriaid Integer,horaid Integer, horarionumero Integer)"; String CREATE_TABLE4 = "create table if not exists materiadisponible(cvemateriadisponibleid Integer, cvecarreraid Integer, cvemateriaid Integer," + "horarionumero Integer, cveperiodoid Text, cveprofesorid Integer, cvesalonid Integer, fechainicia Text, fechatermina Text)"; database.execSQL("DROP TABLE IF EXISTS dia"); database.execSQL("DROP TABLE IF EXISTS horas"); database.execSQL("DROP TABLE IF EXISTS horario"); database.execSQL("DROP TABLE IF EXISTS materiadisponible"); database.execSQL(CREATE_TABLE); database.execSQL(CREATE_TABLE2); database.execSQL(CREATE_TABLE3); database.execSQL(CREATE_TABLE4); database.execSQL("INSERT INTO dia VALUES(1,'LUNES')"); database.execSQL("INSERT INTO dia VALUES(2,'MARTES')"); database.execSQL("INSERT INTO dia VALUES(3,'MIERCOLES')"); database.execSQL("INSERT INTO dia VALUES(4,'JUEVES')"); database.execSQL("INSERT INTO dia VALUES(5,'VIERNES')"); database.execSQL("INSERT INTO dia VALUES(6,'SABADO')"); database.execSQL("INSERT INTO dia VALUES(7,'DOMINGO')"); database.execSQL("INSERT INTO horas VALUES(1,1,'1230','1330',1)"); database.execSQL("INSERT INTO horas VALUES(2,1,'1330','1430',1)"); database.execSQL("INSERT INTO horas VALUES(3,2,'0730','0830',1)"); database.execSQL("INSERT INTO horas VALUES(4,2,'0930','1030',1)"); database.execSQL("INSERT INTO horas VALUES(5,3,'0700','0830',1)"); database.execSQL("INSERT INTO horas VALUES(6,3,'1200','1330',1)"); database.execSQL("INSERT INTO horario VALUES(1,1,1,1,1)"); database.execSQL("INSERT INTO horario VALUES(1,1,1,6,1)"); database.execSQL("INSERT INTO horario VALUES(3,1,2,2,1)"); database.execSQL("INSERT INTO horario VALUES(3,1,2,3,1)"); database.execSQL("INSERT INTO horario VALUES(2,1,1,1,2)"); database.execSQL("INSERT INTO horario VALUES(2,1,1,3,2)"); database.execSQL("INSERT INTO horario VALUES(4,1,3,4,1)"); database.execSQL("INSERT INTO horario VALUES(4,1,3,5,1)"); database.execSQL("INSERT INTO horario VALUES(5,1,3,2,2)"); database.execSQL("INSERT INTO horario VALUES(5,1,3,4,2)"); database.execSQL("INSERT INTO materiadisponible VALUES(1,1,1,1,'2015-01',1,1,'2015-01-20','2015-05-20')"); database.execSQL("INSERT INTO materiadisponible VALUES(2,1,1,2,'2015-01',2,1,'2015-01-20','2015-05-20')"); database.execSQL("INSERT INTO materiadisponible VALUES(3,1,2,1,'2015-01',3,1,'2015-01-20','2015-05-20')"); database.execSQL("INSERT INTO materiadisponible VALUES(4,1,3,1,'2015-01',3,1,'2015-01-20','2015-05-20')"); database.execSQL("INSERT INTO materiadisponible VALUES(5,1,3,2,'2015-01',4,1,'2015-01-20','2015-05-20')"); Cursor c = obtienehorario(mdisp); int i = 0; int cantidad = c.getCount(); allMaterias = new String[cantidad]; if (c.moveToFirst()) { do { String Linea = c.getInt(0) + " " + c.getInt(1) + " " + c.getString(2) + " " + c.getString(3); allMaterias[i] = Linea; i++; } while (c.moveToNext()); } } return allMaterias; } public Cursor obtienehorario(MateriaDisponibleEntity entitymdisp){ dbhelper= new DBhelper(ourcontext); database = dbhelper.getReadableDatabase(); int intcarrera=entitymdisp.getCvecarreraID(); int intmateria=entitymdisp.getCvemateriaID(); String strperiodo=entitymdisp.getCveperiodoID(); String qryBusca = " select ho.cvemateriadisponibleid, ho.horarionumero, 'horario ' || ho.horarionumero || ':', " + " di.nomdia || ':' || substr('00'||hrs.horainicio,-4,2)|| ':' || substr('00'||hrs.horainicio,-2,2) || " + "' a ' || substr('00'||hrs.horatermina,-4,2) || ':' || substr('00'|| hrs.horatermina,-2,2) as diadescripcion " + " from materiadisponible mad, horario ho, horas hrs, dia di where " + " mad.cvemateriadisponibleid=ho.cvemateriadisponibleid and ho.horaid=hrs.horaid and hrs.cvediaid=di.cvediaid " + " and ho.cvecarreraid= " + intcarrera +" and ho.cvemateriaid= " + intmateria + " and mad.cveperiodoid='" + strperiodo + "' order by ho.horarionumero "; return database.rawQuery(qryBusca,null); } }
4.-.En el archivo class que se genera
horariomostrar.java. Agregar:
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 horariomostrar extends ActionBarActivity { HorarioDisponibleDAO horarioBD; MateriaDisponibleEntity horarioDatos; @Override protected void onCreate(Bundle savedInstanceState) { String materia; String strcarrera; String strmateria; super.onCreate(savedInstanceState); setContentView(R.layout.activity_horariomostrar); Bundle b = this.getIntent().getExtras(); if (b!=null){ materia= b.getString("materia"); strcarrera= materia.substring(5,7); strmateria= materia.substring(7,9); }else { strcarrera ="1"; strmateria="1"; } cargarHorarios(strcarrera, strmateria); } public void cargarHorarios(String strcarrera,String strmateria) { horarioBD = new HorarioDisponibleDAO(this); horarioDatos = new MateriaDisponibleEntity(); horarioDatos.setCvecarreraID(Integer.valueOf(strcarrera)); horarioDatos.setCvemateriaID(Integer.valueOf(strmateria)); horarioDatos.setCveperiodoID("2015-01"); try { String[] AllDatos = horarioBD.ConsultaHoraDisponible(horarioDatos); ArrayAdapter<String> adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, AllDatos); ListView Lista = (ListView) findViewById(R.id.listViewHorarios); Lista.setAdapter(adapter); }catch (Exception e){ Toast.makeText(this, "Error de Consulta de Horarios: " + e, Toast.LENGTH_LONG).show(); } } }
5.-Verificar en el archivo
AndroidManifest.xml que se agrego la actividad respectiva
a) Agregar las lineas de rojo en el metodo onCreate desde el archivo HorarioDisponible.java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_horario_disponible); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { String materianame= v.getTag().toString(); Toast.makeText(HorarioDisponible.this,"Materia:" + materianame, Toast.LENGTH_SHORT).show(); Intent muestrahoras = new Intent(HorarioDisponible.this, horariomostrar.class); muestrahoras.putExtra("materia",materianame; startActivity(muestrahoras); } }); }
7.- Activar la lista para que al seleccionar:a)Inserte los valores en la clase AlumnoMateriaEntity.java b)guardar la materia seleccionada en la tabla del alumno-materia



No hay comentarios.:
Publicar un comentario