University - ISolutions

Programación Orientada a Objetos (Tower defense - kingdom rush)

Moderator: julianmartinez16

User avatar
JuanZuluaga02
Posts: 14
Joined: Tue Jan 22, 2019 12:12 pm

Re: University - ISolutions

Post by JuanZuluaga02 » Mon Mar 04, 2019 7:39 pm

size=150]Sprint # 5- Semana 5[/size]
Fecha de Inicio 28/02/2019
Fecha de Finalización 7/03/2019


Actividad #5

Realización actividad de agenda


Tarea Encargado Dificultad
  • 1. Corrección XML (Carolina) 3
    2. Realización de la clase DBHelper (Carolina) 4
    3. Realización clase DBManager (modificable)(Juan Manuel) 5

Seguimiento del martes:
Fecha: 5/03/2019

1. ¿ Qué hemos hecho ?

Realizamos algunos de los métodos necesarios para implementar la clase DBManager y DBHelper y sus diferentes llamados en la clase Agenda.


Clase DBManager:

Code: Select all

package com.example.juanc.university;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DBManagerAG {

public static  final String TABLE_NAME = "agenda";

public static final String ID = "id";
public static final String CN_TITULO = "Titulo";
public static final String CN_CONTENIDO = "nota";

public static final String CREATE_TABLE = "create table " + TABLE_NAME + "("
        + ID + "integer primary key autoincrement, "
        + CN_TITULO + " text not null,"
        + CN_CONTENIDO + " text;";

    private DBAgenda agenda;
    private SQLiteDatabase db;
    public DBManagerAG(Context context) {

        agenda = new DBAgenda(context); //Se crea una instancia de la clase DBAgenda
        db = agenda.getWritableDatabase(); //Devuelve la base de datos en caso de existir y sino existe, la crea

    }

    public ContentValues generarContentValues(String titulo, String nota){
        ContentValues valores = new ContentValues();
        valores.put(CN_TITULO,titulo);
        valores.put(CN_CONTENIDO,nota);
        return  valores;
    }

    public void insertar(String titulo, String nota){
        db.insert(TABLE_NAME,null,generarContentValues(titulo,nota));
    }

   public void eliminar(String titulo){
        db.delete(TABLE_NAME,CN_TITULO + "=?",new String[]{titulo});
   }

   public Cursor cargarCursorNotas(){
        String[] columnas = new String[]{ID,CN_TITULO,CN_CONTENIDO};
        return db.query(TABLE_NAME,columnas,null,null,null,null,null);

   }



}
Clase DBHelper:

Code: Select all

package com.example.juanc.university;

import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBAgenda extends SQLiteOpenHelper {
    private static final String DB_NAME = "agenda.sqlite";
    private static final int DB_SCHEME_VERSION = 1;

    public DBAgenda(Context context) {
        super(context,DB_NAME,null,DB_SCHEME_VERSION);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(DBManagerAG.CREATE_TABLE);

    }

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

    }
}


Llamados a las clases, en la actividad de Agenda

Code: Select all

package com.example.juanc.university;

import android.database.Cursor;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class Agenda extends AppCompatActivity {

    private DBManagerAG manager;
    private Cursor cursor;
    private ListView lista;
    private SimpleCursorAdapter adapter;

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

        DBManagerAG manager = new DBManagerAG(this);
        lista = findViewById(R.id.listview);
        cursor = manager.cargarCursorNotas();
    }
}


2. ¿ Qué vamos a hacer ?

Continuaremos con la implementación de la actividad Agenda, la cual requiere muchos elementos.

3. ¿Qué dificultades hemos tenido?

Aún la nota en la actividad Cálculo Rápido no está siendo calculada de la manera correcta, al parecer el string está siendo tomado automáticamente como uno y por ende el retorno de la función siempre será 3.
Last edited by JuanZuluaga02 on Tue Mar 12, 2019 9:50 pm, edited 2 times in total.
Juan Manuel Zuluaga
POO1

User avatar
JuanZuluaga02
Posts: 14
Joined: Tue Jan 22, 2019 12:12 pm

Re: University - ISolutions

Post by JuanZuluaga02 » Thu Mar 07, 2019 9:51 pm

Seguimiento del Jueves:
Fecha: 7/03/2019

1. ¿ Qué hemos hecho ?

Se implementó el bloque de código necesario para hacer uso de Listviews empleando bases de datos.


Clase Agenda Principal:

Code: Select all

  private ListView lista_lisv;
  //  ArrayList<String> lista_array_id;
    ArrayList<String> lista_array_nom;
    ArrayAdapter adaptador;
    SQLiteDatabase db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_listausuarios);
        //llenado de lisview
        lista_lisv = (ListView) findViewById(R.id.lista_lisv);
        UsuariosSQLiteHelper usu = new UsuariosSQLiteHelper(getApplicationContext());
        db = usu.getWritableDatabase();

      //  lista_array_id = llenar_lista_lisv_id();
        lista_array_nom= llenar_lista_lisv_nomb();
      //  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.formato_fila, cursor, from, to);
        adaptador = new ArrayAdapter(this, android.R.layout.simple_list_item_1,lista_array_nom);
        lista_lisv.setAdapter(adaptador);

        lista_lisv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

                String pos = String.valueOf(position);
                // String pos2 = String.valueOf(id);
                String  itemValue    = (String)   lista_lisv.getItemAtPosition(position);

                Toast.makeText(getApplicationContext(), "valor 1 = "+
                        pos+" valor 3 = "+itemValue, Toast.LENGTH_LONG).show();


            }
        });

    }
    public ArrayList llenar_lista_lisv_nomb(){
        ArrayList<String> lista_nom = new ArrayList<>();

        Cursor registros = db.rawQuery("SELECT codigo,nombre,edad FROM Usuarios",
                                        null);
        if(registros.moveToFirst()){
            do{
                lista_nom.add(registros.getString(1));
            }while(registros.moveToNext());
        }
        return lista_nom;

    }
    public ArrayList llenar_lista_lisv_id(){
        ArrayList<String> lista_id = new ArrayList<>();

        Cursor registros = db.rawQuery("SELECT codigo,nombre,edad FROM Usuarios", null);
        if(registros.moveToFirst()){
            do{
                lista_id.add(registros.getString(0));
            }while(registros.moveToNext());
        }
        return lista_id;

    }





}


Clase de apoyo para métodos básicos en una base de datos

Code: Select all

  private Button bInsertar, bActualizar, bEliminar, bConsultar;
    private EditText eCodigo, eNombre, eEdad;
    private TextView Resultado;
    private Button blista;


    SQLiteDatabase db;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        blista = (Button) findViewById(R.id.blista);
        bInsertar = (Button) findViewById(R.id.bInsertar);
        bActualizar = (Button) findViewById(R.id.bActualizar);
        bEliminar = (Button) findViewById(R.id.bEliminar);
        bConsultar = (Button) findViewById(R.id.bConsultar);
        eCodigo = (EditText) findViewById(R.id.eCod);
        eNombre = (EditText) findViewById(R.id.eNom);
        eEdad = (EditText) findViewById(R.id.eEdad);
        Resultado = (TextView) findViewById(R.id.txtResultado);


        //Abrimos la base de datos 'UsuariosBD' en modo escritura
        UsuariosSQLiteHelper usuario = new UsuariosSQLiteHelper(this);
        //UsuariosSQLiteHelper usuario = new UsuariosSQLiteHelper(this, "UsuariosBD", null, 1);

        db = usuario.getWritableDatabase();
        // SQLiteDatabase db = usdbh.getWritableDatabase();

        //Si hemos abierto correctamente la base de datos
        if (db != null) {

            for (int i = 1; i <= 2; i++) {
                String nombre = "usuario"+i;
                int edad = 20 + i;

                db.execSQL("INSERT INTO Usuarios(nombre,edad)"
                        + "VALUES('" + nombre + "','" + edad + "')");
            }
        }

        Ver_Tabla();

        bInsertar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String nombre=eNombre.getText().toString();
                String  edad= eEdad.getText().toString();

                ContentValues nuevoRegistro = new ContentValues();
                nuevoRegistro.put("nombre", nombre);
                nuevoRegistro.put("edad", edad);
                db.insert("Usuarios", null, nuevoRegistro);
                Ver_Tabla();
            }
        });

        bActualizar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String codigo=eCodigo.getText().toString();
                String nombre=eNombre.getText().toString();
                String edad=eEdad.getText().toString();

                ContentValues nuevoValor = new ContentValues();
                nuevoValor.put("nombre",nombre);
                nuevoValor.put("edad",edad);
                db.update("Usuarios", nuevoValor, "codigo=" + codigo, null);
                Ver_Tabla();
            }
        });

    


   


2. ¿ Qué vamos a hacer ?

Solucionaremos los errores aún presentes en la clase Agenda y Calculo.

3. ¿Qué dificultades hemos tenido?

La base de datos no está haciendo la búsqueda de manera correcta y aún está presente el problema con la clase CálculoRapido
Last edited by JuanZuluaga02 on Tue Mar 12, 2019 10:12 pm, edited 1 time in total.
Juan Manuel Zuluaga
POO1

User avatar
xacarana
Site Admin
Posts: 1047
Joined: Fri Jan 15, 2016 6:13 pm

Re: University - ISolutions

Post by xacarana » Tue Mar 12, 2019 12:16 pm

Image
Andrés Bedoya Tobón
Profesor
"I only smile in the dark, I only smile when it's complicated" Raybiez

User avatar
JuanZuluaga02
Posts: 14
Joined: Tue Jan 22, 2019 12:12 pm

Re: University - ISolutions

Post by JuanZuluaga02 » Tue Mar 12, 2019 10:10 pm

Sprint # 6 - Semana 6
Fecha de Inicio 7/03/2019
Fecha de Finalización 14/03/2019


Actividad #6

Implementación de Métodos Básicos de una base de datos


Tarea Encargado Dificultad
  • 1. Método Eliminación (Carolina) 3
    2. Método de Consulta(Juan Manuel) 4

Seguimiento del martes:
Fecha: 12/03/2019

1. ¿ Qué hemos hecho ?

Implementamos algunos de los métodos básicos para la implementación de una bases de datos básica.

Clase DBManager:

Code: Select all

private Button bInsertar, bActualizar, bEliminar, bConsultar;
    private EditText eCodigo, eNombre, eEdad;
    private TextView Resultado;
    private Button blista;


    SQLiteDatabase db;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        blista = (Button) findViewById(R.id.blista);
        bInsertar = (Button) findViewById(R.id.bInsertar);
        bActualizar = (Button) findViewById(R.id.bActualizar);
        bEliminar = (Button) findViewById(R.id.bEliminar);
        bConsultar = (Button) findViewById(R.id.bConsultar);
        eCodigo = (EditText) findViewById(R.id.eCod);
        eNombre = (EditText) findViewById(R.id.eNom);
        eEdad = (EditText) findViewById(R.id.eEdad);
        Resultado = (TextView) findViewById(R.id.txtResultado);


        //Abrimos la base de datos 'UsuariosBD' en modo escritura
        UsuariosSQLiteHelper usuario = new UsuariosSQLiteHelper(this);
        //UsuariosSQLiteHelper usuario = new UsuariosSQLiteHelper(this, "UsuariosBD", null, 1);

        db = usuario.getWritableDatabase();
        // SQLiteDatabase db = usdbh.getWritableDatabase();

        //Si hemos abierto correctamente la base de datos
        if (db != null) {

            for (int i = 1; i <= 2; i++) {
                String nombre = "usuario"+i;
                int edad = 20 + i;

                db.execSQL("INSERT INTO Usuarios(nombre,edad)"
                        + "VALUES('" + nombre + "','" + edad + "')");
            }
        }

        Ver_Tabla();

        bInsertar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String nombre=eNombre.getText().toString();
                String  edad= eEdad.getText().toString();

                ContentValues nuevoRegistro = new ContentValues();
                nuevoRegistro.put("nombre", nombre);
                nuevoRegistro.put("edad", edad);
                db.insert("Usuarios", null, nuevoRegistro);
                Ver_Tabla();
            }
        });

        bActualizar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String codigo=eCodigo.getText().toString();
                String nombre=eNombre.getText().toString();
                String edad=eEdad.getText().toString();

                ContentValues nuevoValor = new ContentValues();
                nuevoValor.put("nombre",nombre);
                nuevoValor.put("edad",edad);
                db.update("Usuarios", nuevoValor, "codigo=" + codigo, null);
                Ver_Tabla();
            }
        });

        bEliminar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String codigo=eCodigo.getText().toString();

                db.delete("Usuarios", "codigo="+codigo, null);
                Ver_Tabla();
            }
        });

        bConsultar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String id = eCodigo.getText().toString();
                String[] campos = new String[]{"codigo", "nombre", "edad"};
                String[] args = new String[]{id};

                Cursor c = db.query("Usuarios", campos, "codigo=?", args, null, null, null);



                //Nos aseguramos de que existe al menos un registro
                if (c.moveToFirst()) {
                    Resultado.setText("");
                    //Recorremos el cursor hasta que no encontrar mas registros
                    do {
                        String codigo = c.getString(0);
                        String nombre = c.getString(1);
                        int edad = c.getInt(2);

                        Resultado.append(" " + codigo + " - " + nombre + " - " + edad + "\n");
                    } while (c.moveToNext());
                }
            }
        });

        blista.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getApplicationContext(),Listausuarios.class);
                startActivity(i);

            }
        });
    }



  




2. ¿ Qué vamos a hacer ?

Continuar implementando los diferentes métodos y corrigiendo los diferentes problemas con esta.

3. ¿Qué dificultades hemos tenido?

Aún la nota en la actividad Cálculo Rápido no está siendo calculada de la manera correcta, al parecer el string está siendo tomado automáticamente como uno y por ende el retorno de la función siempre será 3.
Last edited by JuanZuluaga02 on Tue Mar 19, 2019 8:19 pm, edited 1 time in total.
Juan Manuel Zuluaga
POO1

User avatar
JuanZuluaga02
Posts: 14
Joined: Tue Jan 22, 2019 12:12 pm

Re: University - ISolutions

Post by JuanZuluaga02 » Thu Mar 14, 2019 6:42 pm

Seguimiento del jueves:
Fecha: 14/03/2019

1. ¿ Qué hemos hecho ?

Evaluamos otra alternativa un poco menos complicada para la implementación de una agenda. Esta alternativa consiste en simplemente almacenar en un string temporal lo que el usuario ingrese en un campo de texto y después mostrarlo con un textView, además estamos pensando en para que los datos no se pierden al reiniciar la aplicación, usar un archivo, pero aún estamos evaluando eso.

En clase Agenda:

Code: Select all

Button Boton5;
    EditText texto1;
    TextView edita1;
    ListView lista;
    Button image;


    private String APP_DIRECTORY = "MyApplication3/";
    private String MEDIA_DIRECTORY = APP_DIRECTORY + "media";
    private String TEMPORAL_PICTURE_NAME = "temporal.jpg";

    private final int PHOTO_CODE = 100;
    private final int SELECT_PICTURE = 200;

    private ImageView imagecam;
    private RelativeLayout mRL;



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

        EditText editText6 = (EditText) findViewById(R.id.editText6);
        TextView textView14 = (TextView) findViewById(R.id.textView14);
        textView14.setText(editText6.getText().toString());

        Boton5 = (Button) findViewById(R.id.image6);
       imagecam = (ImageView) findViewById(R.id.imageView20);
        image = (Button) findViewById(R.id.imageView19);
         mRL = (RelativeLayout) findViewById(R.id.Contenedor);


        Boton5.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText editText6 = (EditText) findViewById(R.id.editText6);
                TextView textView14 = (TextView) findViewById(R.id.textView14);
                textView14.setText(editText6.getText().toString());
            }
        });





2. ¿ Qué vamos a hacer ?

Seguir evaluando otras alternativos no tan complicadas para implementar Agenda.

3. ¿Qué dificultades hemos tenido?

Aún la nota en la actividad Cálculo Rápido no está siendo calculada de la manera correcta, al parecer el string está siendo tomado automáticamente como uno y por ende el retorno de la función siempre será 3.
Juan Manuel Zuluaga
POO1

User avatar
JuanZuluaga02
Posts: 14
Joined: Tue Jan 22, 2019 12:12 pm

Re: University - ISolutions

Post by JuanZuluaga02 » Tue Mar 19, 2019 8:24 pm

Sprint # 7 - Semana 7
Fecha de Inicio 14/03/2019
Fecha de Finalización 21/03/2019


Actividad #7

Implementación del login.


Tarea Encargado Dificultad
  • 1. Creación tabla con SQLite (Carolina) 3
    2. Método de inserción de datos(Juan Manuel) 3
    3. Método de búsqueda de datos (Juan Manuel y Carolina) 4

Seguimiento del martes:
Fecha: 19/03/2019

1. ¿ Qué hemos hecho ?

Realizamos la creación de la tabla y se comenzó a implementar el método de inserción de datos, el cual aún está bajo revisión.

Clase SQLiteOpenHelper

Code: Select all

package com.example.iuniversity.OpenHelperlLogin;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class SQLite_OpenHelper extends SQLiteOpenHelper {

    public SQLite_OpenHelper(Context context,  String name,  SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "create table  usuarios(_ID integer primary key autoincrement, "
                + "Nombre text, Correo text, Contrasena text, Usuario text);"; //Query para hacer invocaciones SQL
         db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }

    //Método para abrir base de datos
    public void abrir(){
        this.getWritableDatabase();
    }


    //Método para cerrar base de datos
    public void cerrar(){
        this.close();
    }

    //Metodo que permite insertar registros en la tabla
    public void insertarReg(String nom, String correo, String contrasena,String usuario){
        ContentValues valores = new ContentValues();
        valores.put("Nombre",nom);
        valores.put("Correo",correo);
        valores.put("Contrasena", contrasena);
        valores.put("Usuario",usuario);
        this.getWritableDatabase().insert("usuarios",null,valores);
    }

    public Cursor ConsultarUsuPas(String usu, String pass) throws SQLException {
        Cursor mcursor = null;
        mcursor = this.getReadableDatabase().query("usuarios",new String[]{"_ID",
                "Nombre","Correo","Contrasena","Usuario"},
                "Correo like '"+usu+"' " +
                        "and Contrasena like '"+pass+"'",null,null,null,null);
        return mcursor;

    }
}



Clase Registro, método de inserción:

Code: Select all

package com.example.iuniversity;

import android.database.sqlite.SQLiteDatabase;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.iuniversity.OpenHelperlLogin.SQLite_OpenHelper;
import com.example.iuniversity.OpenHelperlLogin.SQliteConnectionHelper;
import com.example.iuniversity.utilidades.Utilidades;


public class Registro extends AppCompatActivity {

    Button registrate;
    EditText txtNom,txtCorreo,txtPass,txtUsu;

    SQLite_OpenHelper helper = new SQLite_OpenHelper(this, "BD1",null, 1);
    // conexion a la bd
    SQliteConnectionHelper conn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registro);

        registrate = findViewById(R.id.registrate);
        txtNom = findViewById(R.id.nombre);
        txtCorreo = findViewById(R.id.correo);
        txtPass = findViewById(R.id.contrasena);
        txtUsu = findViewById(R.id.usuario);


        registrate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
               /* helper.abrir();
                helper.insertarReg(String.valueOf(txtNom.getText()),
                        String.valueOf(txtCorreo.getText()),
                        String.valueOf(txtPass.getText()),
                        String.valueOf(txtUsu.getText()));
                helper.cerrar();*/
                //Toast.makeText(getApplicationContext(), "Registro almacenado con exito",Toast.LENGTH_LONG).show();
               // PasarMain();

                if(txtUsu.length()>0 && txtCorreo.length()>0 && txtPass.length()>0){

                    addDataToDataBase();
                } else {

                    Toast.makeText(getApplicationContext(), "Error, por favor llene todos los campos solicitados", Toast.LENGTH_SHORT).show();

                }


            }
        });

    }

    public void PasarMain(){
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
    }

    // insert a la bd creada en el utilities
    private void addDataToDataBase (){
        // Guardamos la informacion ingresada por el usuario

            String ident = txtUsu.getText().toString();
            String nombre = txtPass.getText().toString();
            String apellido = txtCorreo.getText().toString();

            // Crea conexion con la base de datos
            conn=new SQliteConnectionHelper(getApplicationContext(),"DBClientes",null,1);
            SQLiteDatabase db=conn.getWritableDatabase();

            // Se agregan los datos a la base de datos local
            String insert = "INSERT INTO " + Utilidades.CLIENT_TABLE
                    + " ("
                    + Utilidades.ID_FIELD + "," + Utilidades.NAME_FIELD + "," + Utilidades.LASTNAME_FIELD + ")" +
                    " VALUES (" + ident + ",'" + nombre + "','" + apellido + "')";

            db.execSQL(insert);

            db.close();
            Toast.makeText(this, "Usuario añadido exitosamente a la bd local", Toast.LENGTH_SHORT).show();
            txtUsu.setText("");
            txtCorreo.setText("");
            txtPass.setText("");








    }


}

2. ¿ Qué vamos a hacer ?

Corregir los errores con la inserción de los datos y posteriormente implementar el método de búsqueda

3. ¿Qué dificultades hemos tenido?

El método de inserción aún no es efectivo, ya que con una validación se puede ver que no está insertando datos.
Juan Manuel Zuluaga
POO1

Post Reply