我有两件事。我有一个个性列表适配器,我有一个AsyncTask用于读取外部XML。 我的问题是加入这两件事。 适配器使用平面文本,但是当我尝试向AsyncTask引入一个值时,这是空的。
适配器
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);
}