[Android] Editar un Listview personalizado

AtiS

Buenas,
Es la primera vez que intento hacer una aplicación en android por lo cual no se mucho del tema y seguramente mi duda sea de lo más básico, pero es que no encuentro la forma de hacerlo. La cuestión es que tengo un Listview que se rellena a través de un SimpleAdapter, pero luego necesito poder editar el listview a través de la interfaz y que se me actualice el adaptador. Supongo que sería algo parecido a capturar el evento que se produce cuando edito algún campo del listview y actualizar el adaptador con los datos que hay en pantalla pero no hay manera. El código relacionado a mi listview es el siguiente:

spoiler

He intentado añadirle eventos al listview pero no salta ninguno, ni cuando le hago click ni nada

spoiler

No tengo gitHub >.<
A ver si consigo ponerlo mas o menos claro ...

  1. Layout principal : activity_crearreceta.xml

    spoiler
    1. layout para el listview row_list_receta.xml

      spoiler

      3.Actividad CrearRecetas.java

      spoiler
Scottie

usa estas etiquetas (sin la barra baja):

[code][_/code]

para que podamos leer algo >.<

Kaiserlau

para estos casos no se podria poner un scroll lateral al

 ?
1
Scottie

si lo tienes el proyecto en un github lo podria ver mejor >.<

Edit.

Lo siento tio, es complicado de leer. No se cuanto llevaras programando, pero deberias hacer separar las clases y organizarlo mejor. Y por dios, usa github :(

1 respuesta
AtiS

#4

Bueno, entonces la pregunta sería, ¿sabes de android?
Intento explicarte que necesito , sin código, jeje, para ver si me puedes pasar un ejemplo.

Yo tengo una aplicación en la que vas eligiendo "configuraciones permitidas" dadas por la app y se van añadiendo a un listview que esta personalizado a través de otro layout y un simpleadapter, pero despues de añadir esas configuraciones tengo que tener la opción de editar a mano algunos campos del listview. A mi me permite escribir sobre el listview, ya que esta compuesto por edittexts, pero cuando añado otra linea los cambios que hice desaparecen porque lo que realmente tengo que actualizar es el adaptador. el evento de clickar el listview no funciona por los edittext de los que esta compuesto, pero no puedo ponerlos a focus=false porque necesito escribir sobre ellos y tampoco se la manera de que me salte el evento de cuando se editan. Por ahi estoy viendo que lo hacen a través de un holder pero claro tienen una clase definida para el adaptador. A mi me gustaría poder usar el simpleadapter que estoy utilizando, vamos que poder editar una lista no tiene poque ser tan complicado :_(

Si lo peor es que tiene que ser una chorrada pero he llegado a mi limite de sesperación :f5: :f5: :f5:

1 respuesta
zoeshadow

#5 Creo que vas a tener que extender el adapter, y en el momento que le vayas pasando las vistas con el metodo getView() añades un listener a la vista que retornes en ese metodo y actualizas el array.


public class TuAdapter extends SimpleAdapter {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	View 	v = inflater.inflate(R.layout.list_item, null);
        // añades el listener de edicion, posiblemente tengas que castear a (EditText) y actualizas el array

    return view;
}
}

Un ejemplo random de internet GitHub

AtiS

#5 gracias. pruebo y comento si funciona

Pues sí. Esa ha sido la solución. Extender el simpleadapter y meterle el listener a la vista. Gracias a los dos por todo

Usuarios habituales

  • AtiS
  • zoeshadow
  • Scottie
  • Kaiserlau