|
||
|
![]() |
![]() |
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
|
||||
|
||||
![]()
Buenas noches a tod@s!
Espero puedan ayudarme con un problema que se me ha presentado. Estoy intentado crear una aplicacion que necesita 3 activity En el primero se ingresa un codigo (llamemoslo asi) el cual se consulta en una tabla de una base de datos Sqlite, una vez encontrado se hace otro select para cargar los registros de una tabla (20 registros, 3 campos por registro [int, string, blob]), se deposita todo esto en el adaptador para crear el listview en el segundo activity Ya estando en el segundo activity cuyo contenido es el listview (resumamoslo de esa manera ya que es la parte importante) he creado un onClickItemListener el cual toma el campo string y el campo blob para pasarlos por el intent al 3er. activity. En el tercer activity se ingresa un valor numerico (aqui entra en juego el campo int de la tabla de 20 registros) el cual debera regresar al activity anterior (el segundo) donde se debe "refrescar" el elemento clickeado. He logrado traer ese valor numerico, lo se porque lo presento en un Toast y ahi esta; pero no logro actualizar el item del listview. Código:
lvItems.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { String votesqty = ((TextView) view.findViewById(R.id.votesqty)).getText().toString(); Cursor selforvote = (Cursor) adapterView.getItemAtPosition(i); code = selforvote.getInt(0); Intent intent = new Intent(Main2Activity.this, IngresoActivity.class); intent.putExtra("txtVote", selforvote.getString(1) ); intent.putExtra("qtyVotes", votesqty); byte[] imgByte = selforvote.getBlob(2); intent.putExtra("jpgVote", imgByte); startActivityForResult(intent, code); } }); Código:
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); a = data.getStringExtra("VP"); if (requestCode == 1) { if (resultCode == RESULT_OK) { Toast.makeText(this, data.getStringExtra("VP"), Toast.LENGTH_SHORT).show(); } } else { if (requestCode == 2){ Toast.makeText(this, data.getStringExtra("VP"), Toast.LENGTH_SHORT).show(); } } } |
|
#2
|
||||
|
||||
El procedimiento es actualizar la estructura de datos (sqlite, arrays, etc.) con los nuevos valores y llamar al notifyDataSetChanged del adapter para que vuelva a leer los datos y actualice las vistas.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#3
|
||||
|
||||
Gracias mocelet,
ahora bien, una pregunta... se puede modificar el contenido del cursor sin alterar la tabla en la base de datos? Es decir, yo quiero que el dato que obtengo del activity3 solo se escriba en el cursor, en otras palabras "temporalmente" ya que seria necesario eso para actualizar el contenido en pantalla dentro del listview porque voy a agregar un boton que permita hacer el update respectivo a la tabla, pero para eso se iran refrescando valores en pantalla de los distintos elementos del listview para posteriormente enviar todas esas modificaciones atraves del update que te comento. |
![]() |
![]() |
||||||
|