i have android app in main screen consume webservice , show results in list view.
problems:
only thumb updated. if use simple adapter, work. if use custom adapter, thumb updated;
when scrolling, every list view updated. list view update once when open app.
mainactivity.java
// lista de imóveis list<hashmap<string, string>> alist = new arraylist<hashmap<string, string>>(); for(integer = 0, n = referencias.size(); n > i; ++i) { hashmap<string, string> hm = new hashmap<string, string>(); hm.put("referencia", "imóvel " + referencias.get(i)); hm.put("valor", valor.get(i).tostring()); hm.put("dormitorio", dormitorio.get(i).tostring()); hm.put("vagas", vagas.get(i).tostring()); hm.put("banheiro", banheiro.get(i).tostring()); hm.put("subcategoria", subcategoria.get(i).tostring()); hm.put("bairro", bairro.get(i).tostring()); hm.put("img", imagem.get(i).tostring()); alist.add(hm); } // keys used in hashmap string[] = {"referencia", "valor", "dormitorio", "vagas", "banheiro", "subcategoria", "bairro", "img"}; // ids of views in listview_layout int[] = {r.id.referencia, r.id.valor, r.id.num_beds, r.id.num_garagens, r.id.num_baths, r.id.tipo, r.id.bairro, r.id.thumb}; mainadapter customadapter = new mainadapter(mainactivity.this, alist, r.layout.list_main_imoveis, from, to); listview listview = (listview)findviewbyid(r.id.listviewimoveis); listview.setadapter(customadapter); mainadapter.java
package br.com.gtaimoveis.adapter; import android.content.context; import android.util.log; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.imageview; import android.widget.simpleadapter; import java.util.hashmap; import java.util.list; import java.util.map; import br.com.gtaimoveis.r; import br.com.gtaimoveis.util.downloadtask; public class mainadapter extends simpleadapter { private context mcontext; public layoutinflater inflater = null; public mainadapter(context context, list<? extends map<string, ?>> data, int resource, string[] from, int[] to) { super(context, data, resource, from, to); mcontext = context; inflater = (layoutinflater) mcontext .getsystemservice(context.layout_inflater_service); } @override public view getview(int position, view convertview, viewgroup parent) { view vi = convertview; if (convertview == null) vi = inflater.inflate(r.layout.list_main_imoveis, null); hashmap<string, string> data = (hashmap<string, string>) getitem(position); log.d(">>>>>", data.tostring()); // << data fine here new downloadtask((imageview) vi.findviewbyid(r.id.thumb)) .execute((string) data.get("img").tostring()); return vi; } } can see going wrong?
almost i've solved problem 1. in getview method update information.
textview valor = (textview) vi.findviewbyid(r.id.valor); valor .settext(data.get("valor")); problem 2 not solved yet.
Comments
Post a Comment