fervillagon
12/08/15, 20:21:29
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.
/* CUSTOM LISTVIEW Y ADAPTER PARA MOSTRAR INFORMACION DE REFERENCIAS */
String[] from = new String[]{manager.CN_REF,manager.CN_NOM,manager.CN_DESDE,ma nager.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);
Hasta aqui todo bien.
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.
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);
}
CODIGO QUE RECOGE LOS DATOS EN LA ACTIVIDAD A LA QUE QUIERO PASAR LOS DATOS.
prueba = (TextView) findViewById(R.id.prueba);
Intent men = getIntent();
info = men.getStringArrayExtra(hfb92.MAPA_92);
prueba.setText(info[0]);
El resultado es que solo me funciona a medias. ya que tengo unos 7 registros con diferentes valores y solo consigo que en la actividad destino me devuelva dos valores distintos según en el ítem que pulse, si pulso en uno de los items superiores me devuelve el valor del primer ítem, y si pulso en uno de los inferiores me devuelve el del item 3 o 4 que correspondería al del centro de la lista.
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.
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.
/* CUSTOM LISTVIEW Y ADAPTER PARA MOSTRAR INFORMACION DE REFERENCIAS */
String[] from = new String[]{manager.CN_REF,manager.CN_NOM,manager.CN_DESDE,ma nager.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);
Hasta aqui todo bien.
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.
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);
}
CODIGO QUE RECOGE LOS DATOS EN LA ACTIVIDAD A LA QUE QUIERO PASAR LOS DATOS.
prueba = (TextView) findViewById(R.id.prueba);
Intent men = getIntent();
info = men.getStringArrayExtra(hfb92.MAPA_92);
prueba.setText(info[0]);
El resultado es que solo me funciona a medias. ya que tengo unos 7 registros con diferentes valores y solo consigo que en la actividad destino me devuelva dos valores distintos según en el ítem que pulse, si pulso en uno de los items superiores me devuelve el valor del primer ítem, y si pulso en uno de los inferiores me devuelve el del item 3 o 4 que correspondería al del centro de la lista.
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.