mainactivity. Java:
Package com.cn. perfectlistview; import Java. util. arraylist; import android. app. activity; import android. OS. bundle; import android. widget. listview; // solution: // 1 listview asynchronously loads network images // 2 when listview slides, the image misplaces public class mainactivity extends activity {private listview; mylistviewadapter adapter; @ override public void oncreate (bundle savedinstancestate) {super. oncreate (savedinstancestate); setcontentview (R. layout. main); initview ();} public void initview () {listview = (listview) findviewbyid (R. id. listview); arraylist <listviewitem> arraylist = new arraylist <listviewitem> (); listviewitem Item1 = new listviewitem ("XXXX", "http://images.csdn.net/20121018/zazhi-68-78-1018.jpg"); arraylist. add (Item1); listviewitem item2 = new listviewitem ("XXXX", "http://info-database.csdn.net/Upload/2012-10-08/zazhi-210-90-1008.jpg"); arraylist. add (item2); listviewitem item3 = new listviewitem ("XXXX", "http://images.csdn.net/20121119/20111211223655841.jpg"); arraylist. add (item3); listviewitem item4 = new listviewitem ("XXXX", "http://images.csdn.net/20121119/20120619174604972.jpg"); arraylist. add (item4); listviewitem item5 = new listviewitem ("XXXX", "http://csdnimg.cn/www/images/pic_foot_report110.png"); arraylist. add (item5); listviewitem item6 = new listviewitem ("XXXX", "http://csdnimg.cn/www/images/pic_foot_report.png"); arraylist. add (item6); listviewitem item7 = new listviewitem ("XXXX", "http://csdnimg.cn/www/images/pic_foot_BNIA.png"); arraylist. add (item7); listviewitem item8 = new listviewitem ("XXXX", "http://csdnimg.cn/www/images/pic_foot_gongshang.png"); arraylist. add (item8); listviewitem item9 = new listviewitem ("XXXX", "http://images.csdn.net/20120803/logo-qixing02.jpg"); arraylist. add (item9); listviewitem item10 = new listviewitem ("XXXX", "http://images.csdn.net/20120726/quanjing-logo-shouye.jpg"); arraylist. add (item10); listviewitem item11 = new listviewitem ("XXXX", "http://images.csdn.net/20120726/nhn-logo-shouye.jpg"); arraylist. add (item11); listviewitem item12 = new listviewitem ("XXXX", "http://images.csdn.net/20120510/shanghai-jiaoda-logo.jpg"); arraylist. add (item12); listviewitem item13 = new listviewitem ("XXXX", "http://images.csdn.net/20120312/bigman2.gif"); arraylist. add (item13); listviewitem item14 = new listviewitem ("XXXX", "http://images.csdn.net/20120216/csdn2.gif"); arraylist. add (item14); listviewitem item15 = new listviewitem ("XXXX", "http://images.csdn.net/20121109/win8_100x74.jpg"); arraylist. add (item15); listviewitem item16 = new listviewitem ("XXXX", "http://images.csdn.net/20120816/cf-20120816.jpg"); arraylist. add (item16); listviewitem item17 = new listviewitem ("XXXX", "http://images.csdn.net/20120704/bi05.jpg"); arraylist. add (item17); listviewitem item18 = new listviewitem ("XXXX", "http://images.csdn.net/20120816/amd-20120816.jpg"); arraylist. add (item18); listviewitem item19 = new listviewitem ("XXXX", "http://y2.ifengimg.com/2012/12/08/09383369.jpg"); arraylist. add (item19); listviewitem item20 = new listviewitem ("XXXX", "http://y1.ifengimg.com/2012/12/08/09320040.jpg"); arraylist. add (item20); listviewitem item21 = new listviewitem ("XXXX", "http://y3.ifengimg.com/4ccd6020154f55cb/2012/1207/2.jpg"); arraylist. add (item21); listviewitem item22 = new listviewitem ("XXXX", "http://y2.ifengimg.com/2012/12/08/09425571.jpg"); arraylist. add (item22); listviewitem item23 = new listviewitem ("XXXX", "http://y2.ifengimg.com/b19fadab6fcc0645/2012/1011/123.jpg"); arraylist. add (item23); listviewitem item24 = new listviewitem ("XXXX", "http://y2.ifengimg.com/2012/11/15/07414772.jpg"); arraylist. add (item24); listviewitem item25 = new listviewitem ("XXXX", "http://y2.ifengimg.com/2012/11/15/07532374.jpg"); arraylist. add (item25); listviewitem item26 = new listviewitem ("XXXX", "http://y0.ifengimg.com/2012/11/15/07583017.jpg"); arraylist. add (item26); listviewitem item27 = new listviewitem ("XXXX", "http://y0.ifengimg.com/2012/02/20/14175732.jpg"); arraylist. add (item27); listviewitem item28 = new listviewitem ("XXXX", "http://y2.ifengimg.com/2012/10/29/21175274.jpg"); arraylist. add (item28); listviewitem item29 = new listviewitem ("XXXX", "http://res.news.ifeng.com/2727e09814adca26/2011/1221/rdn_4ef0fb0333564.jpg"); arraylist. add (item29); listviewitem item30 = new listviewitem ("XXXX", "http://y1.ifengimg.com/2012/12/04/10060551.jpg"); arraylist. add (item30); listviewitem item31 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec068537d8f6.jpg"); arraylist. add (item31); listviewitem item32 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec068554fa3f.jpg"); arraylist. add (item32); listviewitem item33 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec06853bd85b.jpg"); arraylist. add (item33); listviewitem item34 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec06854ace88.jpg"); arraylist. add (item34); listviewitem item35 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec06855bad01.jpg"); arraylist. add (item35); listviewitem item36 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec0685649c4e.jpg"); arraylist. add (item36); listviewitem item37 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec068562ac3d.jpg"); arraylist. add (item37); listviewitem item38 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec06854dc836.jpg"); arraylist. add (item38); listviewitem item39 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec06855ef0ea.jpg"); arraylist. add (item39); listviewitem item40 = new listviewitem ("XXXX", "http://res.news.ifeng.com/b77953a0c6aae8fb/2011/1114/rdn_4ec068568beda.jpg"); arraylist. add (item40); adapter = new mylistviewadapter (mainactivity. this, arraylist); listview. setadapter (adapter );}}
mylistviewadapter. Java:
Package com.cn. perfectlistview; import Java. util. arraylist; import android. content. context; import android. view. layoutinflater; import android. view. view; import android. view. viewgroup; import android. widget. baseadapter; import android. widget. imageview; import android. widget. textview; import com.cn. loadimages. imagedownloader; public class mylistviewadapter extends baseadapter {private arraylist <listviewitem> Marraylist; private context mcontext; private imagedownloader; Public mylistviewadapter (context mcontext, arraylist <listviewitem> marraylist) {super (); this. marraylist = marraylist; this. mcontext = mcontext; string foldernameonsdcard = "Images"; imagedownloader = new imagedownloader (mcontext, foldernameonsdcard);} public int getcount () {If (marraylist = NULL) {return 0 ;} else {return Ma Rraylist. size () ;}} public object getitem (INT position) {If (marraylist = NULL) {return NULL;} else {return marraylist. get (position) ;}} public long getitemid (INT position) {return position;} public view getview (INT position, view convertview, viewgroup parent) {viewholder holder = NULL; if (convertview = NULL) {holder = new viewholder (); convertview = layoutinflater. from (this. mcontext ). inflate (R. layout. listvie Witem, null, false); holder. textview = (textview) convertview. findviewbyid (R. id. textview); holder. imageview = (imageview) convertview. findviewbyid (R. id. imageview); convertview. settag (holder);} else {holder = (viewholder) convertview. gettag ();} If (this. marraylist! = NULL) {listviewitem = This. marraylist. Get (position); If (holder. textview! = NULL) {holder. textview. settext (listviewitem. getcontent ();} If (holder. imageview! = NULL) {try {string imageurl = listviewitem. getimageurl (); // load the image imagedownloader on the network. download (imageurl, Holder. imageview);} catch (exception e) {e. printstacktrace () ;}}return convertview;} private class viewholder {imageview; textview ;}}
Listviewitem. Java is as follows:
Package com.cn. perfectlistview; public class listviewitem {string content; string imageurl; Public listviewitem (string content, string imageurl) {super (); this. content = content; this. imageurl = imageurl;} Public String getcontent () {return content;} public void setcontent (string content) {This. content = content;} Public String getimageurl () {return imageurl;} public void setimageurl (string imageurl) {This. imageurl = imageurl ;}}