1. Simple usage of the ListView
1.1 Layout
<linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"
Android:layout_width= "Match_parent"
android:layout_height= "Match_parent" >
<listview
Android:id= "@+id/listview1"
Android:layout_width= "Match_parent"
android:layout_height= "Match_parent" >
</ListView>
</LinearLayout>
1.2 Code
public class Mainactivity extends Activity {
Private string[] data={"One", "one", "one", "three", "four", "Five", "Six", "Seven", "Eight", "Nine"};
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Arrayadapter<string> adapter=new arrayadapter<string> (mainactivity.this,android. R.layout.simple_list_item_1,data);
ListView listview= (ListView) Findviewbyid (R.id.listview1);
Listview.setadapter (adapter);
Handling Click events
Listview.setonitemclicklistener (New Onitemclicklistener () {
@Override
public void Onitemclick (adapterview<?> arg0, View arg1, int arg2,
Long Arg3) {
TODO auto-generated Method Stub
String STRING=DATA[ARG2];
Toast.maketext (Mainactivity.this, String, Toast.length_short). Show ();
}
});
}
}
2. Customizing the ListView Interface
2.1 New MyData class, as a fit type for the ListView adapter
public class mydata{
Private String datastring;
private int imageId;
Public MyData (String datastring,int imageId) {
TODO auto-generated Constructor stub
this.datastring=datastring;
This.imageid=imageid;
}
Public String getdatastring () {
return datastring;
}
public int Getimageid () {
return imageId;
}
}
2.2 Specify a custom layout for the ListView subkey Mydata_item.xml
<?xml version= "1.0" encoding= "Utf-8"?>
<linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"
Android:layout_width= "Match_parent"
android:layout_height= "Match_parent" >
<imageview
Android:id= "@+id/mydataimage"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content" >
</ImageView>
<textview
Android:id= "@+id/mydatastring"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"
android:layout_marginleft= "10dip"
android:gravity= "Center"/>
</LinearLayout>
2.3 Custom Adapter Classes
public class MyDataAdapter extends arrayadapter<mydata>{
private int resourceId;
Public MyDataAdapter (Context context,int textviewresourceid,list<mydata> objects) {
Super (context, textviewresourceid,objects);
Resourceid=textviewresourceid;
}
@Override
Public View GetView (int position, View Convertview, ViewGroup parent) {
TODO auto-generated Method Stub
MyData Data=getitem (position);
View view;
if (convertview==null) {
View=layoutinflater.from (GetContext ()). Inflate (resourceId, NULL);
}
else {
View=convertview;
}
ImageView dataimageview= (ImageView) View.findviewbyid (r.id.mydataimage);
TextView datastringtextview= (TextView) View.findviewbyid (r.id.mydatastring);
Dataimageview.setimageresource (Data.getimageid ());
Datastringtextview.settext (Data.getdatastring ());
return view;
}
}
2.4 Modifying the Mainactivity code
public class Mainactivity extends Activity {
Private list<mydata> datalist=new arraylist<mydata> ();
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
InitData ();
MyDataAdapter adapter=new MyDataAdapter (mainactivity.this, R.layout.mydata_item, dataList);
ListView listview= (ListView) Findviewbyid (R.id.listview1);
Listview.setadapter (adapter);
Listview.setonitemclicklistener (New Onitemclicklistener () {
@Override
public void Onitemclick (adapterview<?> arg0, View arg1, int arg2,
Long Arg3) {
TODO auto-generated Method Stub
MyData Data=datalist.get (ARG2);
Toast.maketext (Mainactivity.this, data.getdatastring (), Toast.length_short). Show ();
}
});
}
private void InitData () {
TODO auto-generated Method Stub
MyData one=new MyData ("One", R.drawable.one);
MyData two=new MyData ("a", r.drawable.two);
MyData three=new MyData ("three", R.drawable.three);
MyData four=new MyData ("Four", R.drawable.four);
MyData five=new MyData ("Five", r.drawable.five);
MyData six=new MyData ("Six", R.drawable.six);
MyData seven=new MyData ("Seven", R.drawable.seven);
MyData eight=new MyData ("Eight", r.drawable.eight);
MyData nine=new MyData ("Nine", R.drawable.nine);
Datalist.add (one);
Datalist.add (both);
Datalist.add (three);
Datalist.add (four);
Datalist.add (five);
Datalist.add (six);
Datalist.add (seven);
Datalist.add (eight);
Datalist.add (nine);
}
@Override
public boolean Oncreateoptionsmenu (Menu menu) {
Inflate the menu; This adds items to the action bar if it is present.
Getmenuinflater (). Inflate (R.menu.main, menu);
return true;
}
}
Andriod Learning ListView Usage Basics