|
||
|
|
|
|||||||
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
SOLUCIONADO --- problema al pasar valor de una base de datos en un campo de un custom listview a otra actividad
Hola a todos.
Soy nuevo en programación y se me ha presentado un pequeño problema. Os pongo en situación: Estoy desarrollando una aplicación en la que una de las actividades tira de una base de datos sqlite mostrando varios campos con datos en un custom list view que muestro mediante un simpleCursorAdapter. Código:
/* CUSTOM LISTVIEW Y ADAPTER PARA MOSTRAR INFORMACION DE REFERENCIAS */
String[] from = new String[]{manager.CN_REF,manager.CN_NOM,manager.CN_DESDE,manager.CN_ADONDE, manager.CN_TIPO, manager.CN_CTDMOV, manager.CN_NUM};
int[] to = new int[] {R.id.xreferencia,R.id.xnombre,R.id.xdesde2, R.id.xadonde2, R.id.xtipo2, R.id.xctdmov2, R.id.xnumeromapa};
cursor = manager.cargarCursor92();
adapter = new SimpleCursorAdapter(this, R.layout.listareferencias, cursor, from, to, 0);
lista.setAdapter(adapter);
El caso es que quiero pasar el valor que se devuelve en el campo R.id.xnumeromapa a otra actividad, y que es diferente en cada uno de los registros que se muestran en el custom listview segun su valor en la base de datos. Para lo cual he definido lo siguiente con el objetivo de que escuche en el item del custom listview que estoy pulsando y me pase a la otra actividad el valor que se halla devuelto en el campo R.id.xnumeromapa en el item pulsado: CODIGO DEL INTENT EN LA ACTIVIDAD QUE PASA LOS DATOS. Código:
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
numeromapa = (TextView) findViewById(R.id.xnumeromapa);
infonumeromapa = new String[1];
infonumeromapa[0] = numeromapa.getText().toString();
Intent act = new Intent(hfb92.this, Mapa92.class);
act.putExtra(MAPA_92, infonumeromapa);
startActivity(act);
}
Código:
prueba = (TextView) findViewById(R.id.prueba);
Intent men = getIntent();
info = men.getStringArrayExtra(hfb92.MAPA_92);
prueba.setText(info[0]);
si os ayuda a entender mejor, en la actividad donde tengo el custom listview tengo un buscador para que me devuelva 1 solo item segun 1 referencia. cuando hago la busqueda y pulso sobre el item encontrado si que me devuelve el valor correcto en la actividad destino. sea cual sea el item que devuelve la busqueda. Última edición por fervillagon Día 12/08/15 a las 21:33:17. |
|
|
|
#2
|
||||
|
||||
|
Creo que no lo estoy entendiendo bien, por qué estás usando un array de String si sólo vas a pasar un valor? Por qué no pasas el string directamente?
Algo me estoy perdiendo en la aplicación... |
|
#3
|
||||
|
||||
|
El problema aparentemente no es ni leer de la base de datos (la lista se genera bien) ni pasar datos a otra actividad (el intent es correcto). Lo que parece estar mal es el valor que se pasa al intent.
Tienes esto: Cita: numeromapa = (TextView) findViewById(R.id.xnumeromapa);
![]() Cita: numeromapa = (TextView) v.findViewById(R.id.xnumeromapa);
![]()
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#4
|
||||
|
||||
|
Muchísimas gracias MOCELET¡¡¡¡
ese era justamente el problema que tenía. Ahora funciona correctamente. gracias de nuevo¡¡ Gracias a ti también OXOT, tendré en cuenta lo que me comentas del array del string, es verdad que solo necesito un valor. |
![]() |
Estás aquí
|
||||||
|
||||||