Ya que tenemos listo nuestro ListView, nos hace falta agregarle datos a la base de datos, para ello volvemos a editar la clase Crear.java y dejamos al método guardarArchivo() de la siguiente manera
Ademas hay que volver a tocar el método onClick(), esto para intentar hacerlo lo mas profesionalmente posible, le agregaremos un tipo de alerta, el cual se crea cuando se pincha sobre el botón bGuardar, el código queda de la siguiente manera
El botón bCancelar sigue igual, no se le hace ningún cambio.
Ahora lo que tenemos que volver a editar es el texto del botón bLeer y de bCrear, de nuestra clase principal (main.xml) y editar un poco la clase BDateActivity.java, para que no nos lleve a la clase Leer.java (en otras palabras tocaremos en método onClick()), sino que nos lleve a la clase NotasList.java,
El boton cambia de :
A:
Y el código de la siguiente manera:
i = new Intent(BDateActivity.this, Leer.class)
a
i = new Intent(BDateActivity.this, NotasList.class)
Bueno eso es todo por esta ocasión, mas adelante tocaremos nuevamente las clases DBAdapter.java y NotasList.java
private void guardarArchivo() { // TODO Auto-generated method stub //deben de crear una instancia DBAdapter llamada myAdapBD, al inicio del codigo //junto con los botones y los edittext de esta clase //de lo contrario generara errores ya que no encontraria esa instancia //Dicha instancia se inicializa en el metodo inicializar() de la clase Crear.java //asi que mucho ojo con ese detalle try { myAdapBD.abrir(); myAdapBD.insertarNotas(titu, nota.getText().toString()); myAdapBD.cerrar(); } catch (SQLiteException se ) { Log.e(getClass().getSimpleName(), "No se ha podido guardar la nota"); } /* try { if(estado.equals(Environment.MEDIA_MOUNTED)) { File ruta = Environment.getExternalStorageDirectory(); File archivo = new File(ruta, titu); OutputStreamWriter save = new OutputStreamWriter(new FileOutputStream(archivo)); save.write(nota.getText().toString()); save.close(); myAdapBD.abrir(); myAdapBD.insertarNotas(titu, nota.getText().toString()); myAdapBD.cerrar(); } } catch(Exception e) { Toast.makeText(this, "No se pudo guardar el archivo: "+titu, Toast.LENGTH_LONG).show(); }*/ // }Como veran ya no creamos un archivo en la memoria externa del dispositivo, sino que toda la informacion la guardamos dentro de la base de datos que hemos creado.
Ademas hay que volver a tocar el método onClick(), esto para intentar hacerlo lo mas profesionalmente posible, le agregaremos un tipo de alerta, el cual se crea cuando se pincha sobre el botón bGuardar, el código queda de la siguiente manera
public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.bGuardar: titu = titulo.getText().toString(); if(! titu.equals("")) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Estas seguro de guardar la nota o deseas seguir editandola") .setCancelable(false) .setPositiveButton("Guardar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { guardarArchivo();//aqui se agrega el metodo Crear.this.finish(); } }) .setNegativeButton("Editar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); } else { Toast.makeText(getApplication(), "No has agregado un titulo a la nota \nLa nota no se puede guardar aun", Toast.LENGTH_LONG).show(); } break; case R.id.bCancelar: finish(); break; } }En el caso de bGuardar, se comienza dandole un valor a la variable titu (la que almacena lógicamente el titulo de la nota), luego con un if preguntamos si el titulo esta vació, de ser así nos avisa con un Toast, de lo contrario genera un AlertDialog.Builder llamado builder, no explicare cada uno de los métodos que se utiliza para crear y utilizar un Objeto de dicha clase, ya que es muy simple de entender y de utilizar, mas adelante quizás lo personalicemos, pero por el momento nos sobra y basta con saber que se crea dicho dialogo, luego se crea una instancia AlertDialog llamada alert a la que se le asigna el dialogo (es decir builder.create() ), para terminar se muestra la alerta con el método show().
El botón bCancelar sigue igual, no se le hace ningún cambio.
Ahora lo que tenemos que volver a editar es el texto del botón bLeer y de bCrear, de nuestra clase principal (main.xml) y editar un poco la clase BDateActivity.java, para que no nos lleve a la clase Leer.java (en otras palabras tocaremos en método onClick()), sino que nos lleve a la clase NotasList.java,
El boton cambia de :
A:
Y el código de la siguiente manera:
public void onClick(View arg0) { // TODO Auto-generated method stub Intent i; switch(arg0.getId()) { case R.id.bCrearA: i = new Intent(BDateActivity.this, Crear.class); startActivity(i); break; case R.id.bLeerA: i = new Intent(BDateActivity.this, NotasList.class); startActivity(i); break; }El cambio que le hemos hecho es minimo, simplemente hemos reemplazado de
i = new Intent(BDateActivity.this, Leer.class)
a
i = new Intent(BDateActivity.this, NotasList.class)
Bueno eso es todo por esta ocasión, mas adelante tocaremos nuevamente las clases DBAdapter.java y NotasList.java