android - How to use custom listView? -
i trying load list of images array. got images in list. need add text every image in list. can me this? new android.
public class efficientadapter extends baseadapter { public efficientadapter(context c) { mcontext = c; } public int getcount() { return mimageids.length; } public object getitem(int position) { return position; } public long getitemid(int position) { return position; } public view getview(int position, view convertview, viewgroup parent) { imageview = new imageview(mcontext); i.setimageresource(mimageids[position]); i.setscaletype(imageview.scaletype.fit_end); i.setlayoutparams(new listview.layoutparams(60, 60)); return i; } private context mcontext; private integer[] mimageids = { r.drawable.video3, r.drawable.video5, r.drawable.music2, }; } this code have loaded list of images array. please me code.
you like
public view getview(int position, view convertview, viewgroup parent) { // create linear layout hold other views linearlayout oitemviewlayout = new linearlayout(mcontext); // imageview imageview = new imageview(mcontext); i.setimageresource(mimageids[position]); i.setscaletype(imageview.scaletype.fit_end); i.setlayoutparams(new listview.layoutparams(60,60)); // add imageview item view layout oitemviewlayout.addview(i); // textview textview lbltextview = new textview(mcontext); lbltextview.settext(mimagenames[position]); // add imageview item view layout oitemviewlayout.addview(lbltextview); return oitemviewlayout; } where have defined array of strings hold names of images, perhaps like
private string[] mimagenames = {"title of video3", "video5", "music2",}; it easier if create layout listitem , load create view instead
create layout called "mylistview.xml"
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <imageview android:id="@+id/itemview_imgimage" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <textview android:id="@+id/itemview_lbltext" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </linearlayout> you make getview() method this
public view getview(int position, view convertview, viewgroup parent) { // create new view or recycle 1 if available view oitemviewlayout; if (convertview == null) { // new view needs created oitemviewlayout = (view)layoutinflater.from(mcontext).inflate(r.layout.mylistview, parent, false); } else { // recycle existing view oitemviewlayout = (view)convertview; } // imageview imageview = (imageview)oitemviewlayout.findviewbyid(r.id.itemview_imgimage); i.setimageresource(mimageids[position]); // textview textview lbltextview = (textview)oitemviewlayout.findviewbyid(r.id.iitemview_lbltext); lbltextview.settext(mimagenames[position]); return oitemviewlayout; } that not make life easier allowing design view in xml more efficient because re recycling views have gone off screen still in memory because grabbing convertview instance when there one.
Comments
Post a Comment