![]() |
|
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 |
«
Tema Anterior
|
Siguiente tema
»
|
Herramientas |
#1
|
||||
|
||||
Arraylist obtener valores.
Hola ,muy buenas.
A ver si alguien puede ayudarme. Tengo una actividad que muestra en un listview un arraylist con un adaptador para mostrar imagen,precio descripcion y precio. Debajo he añadido un textview para mostrar la suma total de precio de todos los elementos que se van añadiendo en este arraylist. como podria obtener el valor del objeto precio y sumarlo ? static ArrayList<ItemListView> itemsListVMiPedido = obtenerItemsMiPedido(); ItemListViewAdapter adapterlistvMiPedido = new ItemListViewAdapter(this, itemsListVMiPedido); --------- y asi los añado itemsListVMiPedido.add(new ItemListView(1, "LLave22", "LLave con..", "drawable/llave","1.75")); itemsListVMiPedido.add(new ItemListView(2, "LLave1", "LLave con..", "drawable/llave2123","1.75")); Quisiera obtener solo los valores de precio.Estan guardados en un objeto tipo String para poder mostrarlos en el textview del listview. Imagino que una vez obtenidos( lo que no se hacer) abria que pasarlos a double y luego sumarlos. Muchas gracias |
|
#2
|
||||
|
||||
¿Y no es más fácil añadirlo a un objeto Double mientras los vas añadiendo al ArrayList? Aún así, suponiendo que tengas que hacerlo a posteriori:
Y suponiendo que tengas un método getPrecio() en la clase ItemListView que te devuelve el precio en formato String, y si no lo tienes es lo primero que tienes que hacer, lo que tienes que hacer es recorrer el ArrayList, sacar el precio y convertirlo a Double e ir sumándolo en un objeto Double: Double precioFinal = 0; for (ItemListView item : itemsListVMiPedido) precioFinal += Double.parseDouble(item.getPrecio()); |
Gracias de parte de: | ||
#3
|
||||
|
||||
Muchas gracias por responder. Ahora lo probare a ver si lo hago bien y te digo. Gracias!
|
#4
|
||||
|
||||
Te cuento: Funcona perfectamente. Solo tengo un problemilla mas a ver si pudieras ayudarme.
He creado un metodo : public void sumarPedido(){ for (ItemListView item : itemsListVMiPedido) sumaTotal += Double.parseDouble(item.getPrecio()); } ---Como tu me dijiste. A este metodo lo llamo desde el oncreate para que nada mas entrar en la actividad me muestre el total de los articulos añadidos previamente desde otras actividaddes. El caso es que tengo : page1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { itemsListVMiPedido.remove(position); page1.invalidateViews();//refrescar listview despues de borrar elemento,asi se elimina la vista del item } }); } page = page1; break; ---para eliminar los item del listview con solo tocarlos ( tendre que poner un alert dialog para confirmar si desean borrar ) Claro si eliminas un item del listview ,el textview con el precio final deberia actualizarse con el valor actual. Pues no hay manera, justo despues de eliminar el item he añadido una llamada al metodo sumarPedido pero nada,he añadido un textview.invalidate, y tampoco... page1.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { itemsListVMiPedido.remove(position); page1.invalidateViews();//refrescar listview despues de borrar elemento,asi se elimina la vista del item sumarPedido(); tv.invalidate(); } El caso es que si añadir una llamada al metodo sumarpedido, y borrar un articulo al salir y entrar otra vez a mi actividad de mipedido este esta actualizado, (porque vuelve a hacer el oncrete,supongo). Bueno a ver si me puedes ayudar.Y muchas gracias de nuevo. |
#5
|
||||
|
||||
No veo donde vuelves a asignar el valor al TV con el nuevo valor que obtienes de sumarPedido()
|
#6
|
||||
|
||||
Tv.invalidate(); con eso deberia servir o que deberia usar?,?gracias
|
#7
|
||||
|
||||
Ahhhh vale vale...debo volver a asignar el valor..dios que cabeza la mia....
|
Respuesta |
![]() |
||||||
|
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 21:53:28 (GMT +2)
HTCMania: líderes desde el 2007