Jordi Salom
- Posts del Foro: 2
22 sept. 2014 9:40:09 vía Web
22 sept. 2014 9:40:09 vía Web
Hola, tengo un list adapter y un AsyncTask para sacar información de un XML externo. Mi problema es a la hora de introducir los datos del AsyncTask al adapter. Todo lo que meto en un String ("15sep" funciona correctamente pero partidas.get(i).getPartida_tiempo() por ejemplo, no me muestra nada. Y eso que la variable si que tiene contenido.
Espero que puedan ayudarme, un saludo.
Adapter
public class Adapter_listaPartidas extends BaseAdapter{
protected Activity activity;
protected ArrayList<datos_partidas> items;
public Adapter_listaPartidas(Activity activity, ArrayList<datos_partidas> items){
this.activity = activity;
this.items = items;
}
@Override
public int getCount(){
return items.size();
}
@Override
public Object getItem(int arg0){
return items.get(arg0);
}
@Override
public long getItemId(int position){
return items.get(position).getPartida_id();
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
// Generamos una convertview por motivos de eficiencia
View v = convertView;
// Asociados el layout de la lista que hemos creado
if(convertView == null){
LayoutInflater inf = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inf.inflate(R.layout.listado_partidas, null);
}
// Creamos el objeto de la lista de partidas
datos_partidas partida = items.get(position);
TextView dia = (TextView) v.findViewById(R.id.valueDia);
dia.setText(partida.getPartida_dia());
TextView hora = (TextView) v.findViewById(R.id.ValueHora);
hora.setText(partida.getPartida_hora());
TextView vacantes = (TextView) v.findViewById(R.id.ValueVacantes);
vacantes.setText(partida.getPartida_vacantes());
TextView tiempo = (TextView) v.findViewById(R.id.valueTiempo);
tiempo.setText(partida.getPartida_tiempo());
TextView categoria = (TextView) v.findViewById(R.id.valueCategoria);
categoria.setText(partida.getPartida_categoria());
TextView tipo = (TextView) v.findViewById(R.id.valueTipo);
tipo.setText(partida.getPartida_tipo());
TextView club = (TextView) v.findViewById(R.id.valueClub);
club.setText(partida.getPartida_club());
TextView zona = (TextView) v.findViewById(R.id.valueZona);
zona.setText(partida.getPartida_zona());
// retornamos la lista
return v;
}
}
XmlTask
class CargarXmlTask extends AsyncTask<String,Integer,Boolean> {
protected Boolean doInBackground(String... params) {
RssParserSax saxparser =
new RssParserSax(params[0]);
partidas = saxparser.parse();
return true;
}
protected void onPostExecute(Boolean result) {
ArrayList<datos_partidas> arraydir = new ArrayList<datos_partidas>();
datos_partidas partida;
String hora = "";
for(int i=0; i<partidas.size(); i++)
{
System.out.println("final del proceso");
System.out.println(partidas.get(i).getPartida_club());
//hora = partidas.get(i).getPartida_hora();
hora = "10:00";
partidas.get(1).getPartida_club();
partida = new datos_partidas("15sep",
hora,
partidas.get(i).getPartida_tiempo(),
partidas.get(i).getPartida_zona(),
partidas.get(i).getPartida_club(),
partidas.get(i).getPartida_tipo(),
partidas.get(i).getPartida_categoria(),
partidas.get(i).getPartida_vacantes());
arraydir.add(partida);
}
System.out.println("fuera del proceso");
System.out.println(arraydir);
adapter_partidas(arraydir);
}
}
adapter_partidas
private void adapter_partidas(ArrayList<datos_partidas> arraydir){
ListView lista = (ListView) findViewById(R.id.listado_partidas);
//ArrayList<datos_partidas> arraydir = new ArrayList<datos_partidas>();
datos_partidas partida;
//partida = new datos_partidas("13\nsep", "10:00", "30min", "Palma de mallorca", "Pins Padel", "Mixto", "Primera", "2");
//arraydir.add(partida);
// Creamos el adapter personalizado
Adapter_listaPartidas adapter = new Adapter_listaPartidas(this, arraydir);
// Lo aplicamos
lista.setAdapter(adapter);
}
Contenido editorial recomendado
Con su consentimiento, aquí se cargan contenidos externos.
Al hacer clic en el botón anterior, acepta que se le muestren contenidos externos. En el proceso pueden transmitirse datos personales a terceros proveedores. Encontrará más información al respecto en nuestro Política de privacidad.