sábado, 15 de agosto de 2015

Desarrollo de App Android(004) para dispositivos móviles

Practica 004 (agosto 2015)
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

       a)     Agregar un componente  ListView en activity_horariomostrar.xml    






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











Quedara asi






6.- Envia el nombre de la materia para que realice la consulta de acuerdo a la materia
                  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