1.main.xml
<relativelayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http// Schemas.android.com/tools " android:layout_width=" match_parent " android:layout_height=" Match_parent " android:paddingbottom= "@dimen/activity_vertical_margin" android:paddingleft= "@dimen/activity_ Horizontal_margin " android:paddingright=" @dimen/activity_horizontal_margin " android:paddingtop=" @dimen /activity_vertical_margin " tools:context=". Mainactivity "> <listview android:id=" @+id/listview " android:layout_width=" Match_parent " android:layout_height= "Match_parent" > </ListView></RelativeLayout>
2.listitem.xml
<?xml version= "1.0" encoding= "Utf-8"? ><relativelayout xmlns:android= "http://schemas.android.com/apk/res/ Android " android:layout_width=" match_parent " android:layout_height=" Wrap_content " android: Descendantfocusability= "blocksdescendants" android:orientation= "Horizontal" > <textview Android:id= "@+id/textview1" android:layout_width= "wrap_content" android:layout_height= "Wrap_content" android:text= "Content" android:textcolor= "#ff0000" android:textsize= "20sp"/> <button android:id= "@+id/button1" android:layout_width= "wrap_content" android:layout_height= "Wrap_ Content " android:focusable=" false " android:layout_alignparentright=" true " android:text=" button " android:textcolor= "#ff0000" android:textsize= "20SP"/></relativelayout>
3.ContentAdapter
Package Com.example.listviewchangetext;import Java.util.list;import Android.content.context;import Android.util.log;import Android.view.layoutinflater;import Android.view.view;import Android.view.view.onclicklistener;import Android.view.viewgroup;import Android.widget.baseadapter;import Android.widget.button;import Android.widget.textview;public class Contentadapter extends Baseadapter {private static F inal String TAG = "Contentadapter"; Private list<string> mcontentlist; Private Layoutinflater Minflater; Private Myclicklistener Mlistener; Public Contentadapter (context context, List<string> contentlist,//constructor Method Myclicklistener listener) { Mcontentlist = ContentList; Minflater = Layoutinflater.from (context); Mlistener = listener; } @Override public int getcount () {log.i (TAG, "GetCount"); return Mcontentlist.size (); } @Override public Object getItem (int position) {log.i (TAG, "GetItem"); return Mcontentlist.get (position); } @Override public long getitemid (int position) {log.i (TAG, "Getitemid"); return position; } @Override public View getView (int position, view Convertview, ViewGroup parent) {LOG.I (TAG, "GetView"); Viewholder holder = null; if (Convertview = = null) {Convertview = minflater.inflate (R.layout.listitem, NULL); Holder = new Viewholder (); Holder.textview = (TextView) convertview. Findviewbyid (R.id.textview1); Holder.button = (Button) Convertview.findviewbyid (R.id.button1); Convertview.settag (holder); } else {holder = (Viewholder) convertview.gettag (); } holder.textView.setText (Mcontentlist.get (position)); Holder.button.setOnClickListener (Mlistener); Holder.button.setTag (position); return convertview; } public class Viewholder {public TextView TextView;Public button button; }/** * Abstract class for callbacks * @author Ivan Xu * 2014-11-26 * * * public static abstract class Myclicklistener Impl Ements Onclicklistener {/** * base class's OnClick method */@Override public void onclick (View v) {Myonclick (Integer) V.gettag (), v); } public abstract void Myonclick (int position, View v); }}
4.mainactivity.java
Package Com.example.listviewchangetext;import Java.util.arraylist;import Java.util.list;import Android.app.activity;import Android.os.bundle;import Android.view.menu;import Android.view.View;import Android.widget.adapterview;import Android.widget.adapterview.onitemclicklistener;import Android.widget.ListView; Import Android.widget.toast;import Com.example.listviewchangetext.contentadapter.myclicklistener;public class Mainactivity extends Activity implements Onitemclicklistener {//Simulate data loaded in ListView private static final string[] CON Tents = {"Beijing", "Shanghai", "Guangzhou", "Shenzhen", "Suzhou", "Nanjing", "Wuhan", "Changsha", "Hangzhou"}; Private list<string> ContentList; Private ListView Mlistview; @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate); Setcontentview (R.layout.activity_main); Init (); } private void Init () {Mlistview = (ListView) Findviewbyid (R.id.listview); ContentList = new Arraylist<string> (); for (int i = 0; i < contents.length; i++) {Contentlist.add (contents[i]); }//Instantiate the Contentadapter class and pass in the implementation class Mlistview.setadapter (new Contentadapter (this, ContentList, Mlistener)); Mlistview.setonitemclicklistener (this); @Override public boolean Oncreateoptionsmenu (Menu menu) {getmenuinflater (). Inflate (R.menu.main, menu); return true; }//Response item Click event @Override public void Onitemclick (adapterview<?> arg0, View v, int position, long ID) { Toast.maketext (This, "The ListView item is clicked! , click the location--"+ position, Toast.length_short). Show (); }/** * Implementation class, Response button click event */private Myclicklistener Mlistener = new Myclicklistener () {@Override public void Myonclick (int position, View v) {toast.maketext (Mainactivity.this, "The button inside the ListView has been clicked!" , location is-"+ position +", content is-" + contentlist.get (position), Toast.length_short). Show (); } };}
5. Run the following example:
Welcome attention
Android Combat Simple Tutorial-15th Gun (implement button click event Monitoring in the ListView)