使用AsyncTask列出适配器

时间:2014-09-21 14:46:28

标签: android android-asynctask android-arrayadapter

我有两件事。我有一个个性列表适配器,我有一个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);


}

0 个答案:

没有答案