logo
Bienvenido visitante. Para activar todas las funcionalidades, por favor Iniciar sesión o Registrarse.

Aviso

Icon
Error

Opciones
Ir a la última publicación
laura87  
#1 Publicado : martes, 2 de abril de 2013 23:03:58(UTC)
laura87

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.
admin  
#2 Publicado : miércoles, 3 de abril de 2013 21:49:15(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
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.

ListaLugaresActivity
Aqui 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.

ItemListdapter
Es 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.htm

EditarLugarActivity
Pos 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.

MostrarLugarActivity
Conecta 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!





Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
laura87  
#3 Publicado : jueves, 4 de abril de 2013 20:34:36(UTC)
laura87

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.
admin  
#4 Publicado : jueves, 4 de abril de 2013 21:56:25(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
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!
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
Usuarios navegando este tema
Guest (2)
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.