Posición: Newbie
Grupos: Registered
Registrado: 02/04/2013(UTC) Mensajes: 2 Ubicación: España
|
Buenas,
tengo algunas dudas al respecto,yo la Base de datos ya la tengo realizada con los Provider que más o menos los entendí ^^ Pero ahora me surge la duda al añadir,modificar,eliminar y listar los datos. He mirado el código que subiste y no entiendo exactamente qué realizas en cada paso.
¿podrías explicarme lo que realizas en ListaLugares,editarlugar,mostrarlugar,y luego en ItemListAdapter no sé por qué lo usas? Si me lo explicas paso a paso para poder saber por qué lo haces y así saber si se puede realizar de otra manera o de dónde estás cogiendo cada dato para poder realizarlo yo ,ya que me gustaría hacerlo a mi manera pero entender cómo lo has echo para poder realizarlo de forma diferente o por lo menos entender la estructura ^^
Muchas gracias de antemano Saludos.
|
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436 Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
Buenas Laura! A ver tu pregunta es muy general.... te explico asi por encima y me dices si tienes alguna duda en concreto. ListaLugaresActivityAqui lo que se hace es construir la lista desde la Base de datos (cursor) y contiene un metodo que hace la accion de cuando pulsas sobre un elemento de la lista te abra lo de mostrarlugarActivity. ItemListdapterEs una clase que lo que hace es construir cada linea del ListViewAdapter, como ves hay poca cosa, recibe el cursor que le enviamos desde la ListaLugaresActivty, y luego asigna cada campo de la BD a cada elemento de la linea que contiene ese ListViewAdapter, hecha un ojo a esta leccion: http://www.aprendeandroid.com/l4/interface4.htmEditarLugarActivityPos esta lo que hace es recibir los datos del mostrar y los muestra en campos de texto de tipo EditText para poder editarlos y guardar los cambios en la BD. Tambien tiene las clases para añadir fotos desde la camara o desde la galeria. MostrarLugarActivityConecta a la BD y muestra los datos en campos de texto editText, pero asignamos un parametro ara que no sean editable estos campos. Esto mas menos es el resumen, yo no use los content providers, y me pusieron un 8,5 de nota en el proyecto :s Ya nos contaras que tal te fue! |
|
|
|
|
Posición: Newbie
Grupos: Registered
Registrado: 02/04/2013(UTC) Mensajes: 2 Ubicación: España
|
Buenas,
Bueno vamos poco a poco jeje ListaLugares.Vale me queda claro que con esta lo que haces es cargar la BBDD para mostrarla:
public class ListaLugaresActivity extends ListActivity {
public ItemListAdapter adapter; Cursor cursor; BaseDeDatos db1; SQLiteDatabase db;
public static int PETICION_LISTA = 1;
@Override public void onCreate(Bundle icicle) { super.onCreate(icicle); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.lista);
// Cargamos el metodo que carga la lista Cargar_Lista(); }
protected void Cargar_Lista() {
db1 = new BaseDeDatos(ListaLugaresActivity.this, "db_pyf", null, BaseDeDatos.v_db); db = db1.getWritableDatabase();
cursor = db .rawQuery( " SELECT lat, lon, nombre, descripcion, foto, _id, fecha FROM lugares ORDER BY nombre, fecha DESC", null);
// Indicamos al adaptador los datos que vamos a mostrar en el ListView adapter = new ItemListAdapter(this, cursor);------------------------------------------------------------------------>para qué necesitas este adaptador?? setListAdapter(adapter);
db1.close();
}
// Al pulsar en un elemento abrimos la actividad para mostrar el punto // seleccionado @Override protected void onListItemClick(ListView l, View v, int position, long id) {
// Localizamos el elemento que hemos pulsado Cursor cursor = (Cursor) adapter.getItem(position);
// Creamos en Intent para lanzar la actividad y le pasamos el id del // punto Intent i = new Intent(); i.setClass(ListaLugaresActivity.this, MostrarLugarActivity.class); // i.putExtra("id", cursor.getInt(cursor.getColumnIndex("_id"))); i.putExtra( "datos", cursor.getString(cursor.getColumnIndex("nombre")) + ";" + cursor.getString(cursor.getColumnIndex("descripcion")) + ";" + cursor.getString(cursor.getColumnIndex("foto")) + ";" + cursor.getDouble(cursor.getColumnIndex("lat")) + ";" + cursor.getDouble(cursor.getColumnIndex("lon")) + ";" + cursor.getInt(cursor.getColumnIndex("_id")) + ";" + cursor.getString(cursor.getColumnIndex("fecha")));
this.startActivityForResult(i, PETICION_LISTA); }
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PETICION_LISTA) {
if (resultCode == RESULT_OK) { // Cargamos la lista de nuevo Cargar_Lista(); } } }
}
¿se podría realizar de otra manera la parte de onListItemClick?
O es esta estructura la que hay que seguir?
Muchas gracias Saludos.
|
|
|
|
Posición: Administration
Grupos: Administrators
Registrado: 07/10/2010(UTC) Mensajes: 436 Ubicación: España Agradecimientos: 38 veces Fue agradecido: 49 vez/veces in 48 publicación(es).
|
Buenas!
Esa es la estructura cuando se usa un "cursor" fíjate que ese método recibe el "id" de la BD y es la que luedo se utiliza para hacer la consulta y extraer los datos de esa "fila".
Hay mas métodos, quizás tengas que preguntarselo a google :s o mejor a Ismael!! xDDD
Espero que te sirva! |
|
|
|
|
Salto de foro
No puedes iniciar nuevos temas en este foro.
No puedes responder a temas en este foro.
No puedes eliminar sus temas en este foro.
No puedes editar sus temas en este foro.
No puedes crear encuestas en este foro.
No puedes votar las encuestas en este foro.