Custom Adapter Class
Public classListviewadapterextendsBaseadapter {Private Static FinalString TAG = mainactivity.class. GetName (); PrivateContext context;//Run Context PrivateList<map<string, object>> ListItems;//Product Information Collection PrivateLayoutinflater Listcontainer;//View Container Public Final classListitemview {//Custom Control Collections PublicImageView Image_status; PublicTextView Text_storage; PublicTextView Text_device; PublicTextView text_temperature; PublicTextView text_humidity; PublicTextView Text_updatetime; } PublicListviewadapter (context context, list<map<string, object>>ListItems) { This. Context =context; This. Listcontainer = Layoutinflater.from ( This. context);//Create a View container and set the context This. ListItems =ListItems; } @Override Public intGetCount () {//TODO auto-generated Method StubLOG.I (TAG, "GetCount:" +listitems.size ()); returnlistitems.size ();//Get quantity} @Override PublicObject GetItem (intposition) { //TODO auto-generated Method Stub return NULL; } @Override Public LongGetitemid (intposition) { //TODO auto-generated Method Stub return0; } @Override PublicView GetView (intposition, View Convertview, ViewGroup parent) { //TODO auto-generated Method StubLOG.I (TAG, "GetView"); //Custom ViewListitemview Listitemview =NULL; if(Convertview = =NULL) {Listitemview=NewListitemview (); //get a view of a List_item layout fileConvertview = Listcontainer.inflate (R.layout.list_item,NULL); Listitemview.image_status=(ImageView) convertview. Findviewbyid (R.id.item_image_status); Listitemview.text_storage=(TextView) convertview. Findviewbyid (R.id.item_text_storage); Listitemview.text_device=(TextView) convertview. Findviewbyid (R.id.item_text_device); Listitemview.text_temperature=(TextView) convertview. Findviewbyid (R.id.item_text_temperature); Listitemview.text_humidity=(TextView) convertview. Findviewbyid (r.id.item_text_humidity); Listitemview.text_updatetime=(TextView) convertview. Findviewbyid (R.id.item_text_updatetime); //set up text and picturesListItemView.image_status.setBackgroundResource (Integer) listItems. Get (position). Get ( "Image")); ListItemView.text_storage.setText (String) listitems.get (position). Get ("Storage")); ListItemView.text_device.setText (String) listitems.get (position). Get ("Device")); ListItemView.text_temperature.setText (String) listitems.get (position). Get ("Temperature")); ListItemView.text_humidity.setText (String) listitems.get (position). Get ("Humidity")); ListItemView.text_updatetime.setText (String) listitems.get (position). Get ("UpdateTime")); Convertview.settag (Listitemview); } Else{Listitemview=(Listitemview) Convertview.gettag (); } returnConvertview; }}
customizing layout files
<?XML version= "1.0" encoding= "Utf-8"?><LinearLayoutxmlns:android= "Http://schemas.android.com/apk/res/android"Android:layout_width= "Fill_parent"Android:layout_height= "Fill_parent"android:orientation= "Horizontal" > <ImageViewAndroid:id= "@+id/item_image_status"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content" /> <TextViewAndroid:id= "@+id/item_text_storage"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content" /> <TextViewAndroid:id= "@+id/item_text_device"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content" /> <TextViewAndroid:id= "@+id/item_text_temperature"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content" /> <TextViewAndroid:id= "@+id/item_text_humidity"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content" /> <TextViewAndroid:id= "@+id/item_text_updatetime"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content" /></LinearLayout>
Calling the custom adapter method
Private voidInitlistview () {Data_listview=(ListView) Findviewbyid (R.id.data_listview); ListItems=GetListItems (); ListAdapter=NewListviewadapter ( This, ListItems); LOG.I (TAG,"Setadapter"); Data_listview.setadapter (ListAdapter); } PrivateList<map<string, object>>GetListItems () {List<map<string, object>> listItems =NewArraylist<map<string, object>>(); for(inti = 0; I < 10; i++) {Map<string, object> map =NewHashmap<string, object>(); Map.put ("Image", R.drawable.ic_logo); Map.put ("Storage", "warehouse"); Map.put ("Device", "devices"); Map.put ("Temperature", "Temperature"); Map.put ("Humidity", "humidity"); Map.put ("UpdateTime", "Upload Time"); Listitems.add (map); } returnListItems; }
Android ListView Custom Adapter