Hola , que tal??
Estoy intentando hacer una aplicación que me muestra un listView de elementos sacados de un XML que tengo el el localhost. Hasta ahí todo bien, funciona genial. El problema lo tengo cuando al hacer click sobre cada item, necesito que me muestre más información del XML, y no lo consigo. Podéis echarme una mano??? Estoy a punto de volverme loca. Os dejo aquí el código:
Código Java:
Ver originalpackage com.example.aplicacion;
import java.util.ArrayList;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class Lista extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista);
listView1
= (ListView) findViewById
(R.
id.
listView1); new DescargaXML().execute("http://192.168.0.120/listaTattoos.xml");
}
public class DescargaXML
extends AsyncTask
<String,
Void, String
> {
static final String KEY_ITEM
= "tattoo"; static final String KEY_ID
= "id"; static final String KEY_TIPO
= "tipo"; static final String KEY_COLORES
= "colores";
private XMLParser parser;
@Override
parser = new XMLParser();
// Recoger la dirección del archivo XML que se ha pasado como parámetro
// al llamar al método execute
String clasificacionXML
= parser.
getXmlFromUrl(url
[0]);
// Esto que se retorna, lo recibirá onPostExecute por parámetro
// Es el contenido del archivo XML como String
return clasificacionXML;
}
@Override
protected void onPostExecute
(String result
) { super.onPostExecute(result);
// ArrayList que va a almacenar la lista de contactos para asignársela al ListVew
ArrayList<Consulta> arrayListConsulta = new ArrayList<Consulta>();
// En el parámetro result se ha recibido el contenido del archivo XML como String
Document docConsultaXML
= parser.
getDomElement(result
); // Obtener la lista de nodos del documento XML
NodeList listaNodosXML = docConsultaXML.getElementsByTagName(KEY_ITEM);
// Recorrer la lista de nodos para obtener los datos de cada elemento
for (int i = 0; i < listaNodosXML.getLength(); i++) {
// Obtener los datos de ese elemento
String id
= parser.
getValue(elementoXML, KEY_ID
); String tipo
= parser.
getValue(elementoXML, KEY_TIPO
); String colores
= parser.
getValue(elementoXML, KEY_COLORES
); // Guardar los datos en un objeto y almacenarlo en el ArrayList
Consulta consulta = new Consulta(id, tipo, colores);
arrayListConsulta.add(consulta);
}
// Asignar el ArrayList al ListView de la pantalla
ArrayAdapter<Consulta> adapter = new ArrayAdapter<Consulta>(Lista.this,
android.R.layout.simple_list_item_1, arrayListConsulta);
listView1.setAdapter(adapter);
}
}
}
No me importa si la información aparece en otro listView, en un toast, un textView... Lo que quiero es que aparezca al hacer click.
Gracias!!