Today we studied the full code layout, using TextView, EditText, ScrollView, Spinner, Arrayadapter, LinearLayout, Relativelayout, Controls such as Expandablelistview, Baseexpandablelistadapter, and so on, where Expandablelistview is a complex control.
As follows:
The key code is as follows:
Package Com.example.mytest;import Java.util.arraylist;import Java.util.list;import android.os.bundle;import Android.app.activity;import Android.content.context;import Android.graphics.color;import Android.text.InputFilter ; Import Android.view.gravity;import Android.view.menu;import Android.view.view;import Android.view.view.onclicklistener;import Android.view.viewgroup;import Android.view.ViewGroup.LayoutParams; Import Android.widget.abslistview;import Android.widget.adapterview;import Android.widget.adapterview.onitemselectedlistener;import Android.widget.arrayadapter;import Android.widget.baseexpandablelistadapter;import Android.widget.button;import Android.widget.EditText;import Android.widget.expandablelistview;import Android.widget.expandablelistview.onchildclicklistener;import Android.widget.expandablelistview.ongroupclicklistener;import Android.widget.imageview;import Android.widget.imageview.scaletype;import Android.widget.linearlayout;import android.widget.RelativeLayout; ImportAndroid.widget.scrollview;import Android.widget.spinner;import Android.widget.textview;import Android.widget.toast;public class Testexpandablelistviewactivity extends Activity {private Expandablelistview Exlistview;private list<string> Grouparray = new arraylist<string> ();p rivate List<ArrayList<String >> Childarray = new arraylist<arraylist<string>> ();p rivate myadapter myadapter; string[] Spinnerdatas = new string[]{"first option", "second option", "third Option"}; @Overrideprotected void OnCreate (Bundle Savedinstancestate) {super.oncreate (savedinstancestate); Initview (); InitData ();} private void InitData () {Grouparray.add ("friend"); Grouparray.add ("classmate"); arraylist<string> ay1 = new arraylist<string> () Ay1.add ("Zhang San"); Childarray.add (ay1); arraylist<string> ay2 = new arraylist<string> () Ay2.add ("Everything 2"); Childarray.add (ay2); myadapter = new Myadapter (); Exlistview.setadapter (Myadapter); Exlistview.setgroupindicator (null);//Remove arrows//expand for (int i = 0; i < Myadapter.getgroupCount (); i++) {exlistview.expandgroup (i); }}/** * Initialize interface */private void Initview () {ScrollView main = new ScrollView (this); Main.setlayoutparams (New Layoutparams (Layoutparams.match_parent, layoutparams.match_parent)); Main.setbackgroundcolor (Color.White); Root layout parameter Linearlayout.layoutparams layoutparamsroot = new Linearlayout.layoutparams (LinearLayout.LayoutParams.MATCH_ Parent,linearlayout.layoutparams.match_parent); layoutparamsroot.gravity = Gravity.center; Root layout linearlayout layoutRoot = new LinearLayout (this); Layoutroot.setlayoutparams (Layoutparamsroot); Layoutroot.setorientation (linearlayout.vertical); Top margin (DP value) int margin = dip2px (this, 5); Add a textview linearlayout.layoutparams layoutparamstextinfo = new Linearlayout.layoutparams (layoutparams.match_ PARENT,DIP2PX (this, 50)); TextView textInfo = new TextView (testexpandablelistviewactivity.this); Textinfo.setgravity (gravity.center_vertical); Textinfo.settextsize (18); Textinfo.setbackgroUndcolor (Color.cyan); textinfo.setpadding (margin, 0, 0, 0); Textinfo.settext ("What Distribution system parameters"); Layoutroot.addview (Textinfo,layoutparamstextinfo); Add input Linearlayout.layoutparams Layoutparamsedittext = new Linearlayout.layoutparams (layoutparams.match_parent, DIP2PX (this, 50)); EditText editinfo = new EditText (testexpandablelistviewactivity.this); Editinfo.sethint ("Please enter text content"); Set the maximum length that can be entered inputfilter[] filters = {New Inputfilter.lengthfilter (5)}; Editinfo.setfilters (filters); Editinfo.settextsize (18); Editinfo.setpadding (dip2px (this, 8), 0, 0, 0); Layoutroot.addview (Editinfo,layoutparamsedittext); Linearlayout.layoutparams LayoutParamsTextInfo2 = new Linearlayout.layoutparams (layoutparams.match_parent,dip2px ( This, 50)); TextView TextInfo2 = new TextView (testexpandablelistviewactivity.this); Textinfo2.setgravity (gravity.center_vertical); Textinfo2.settextsize (18); Textinfo2.setbackgroundcolor (Color.cyan); textinfo.setpadding (margin, 0, 0, 0); Textinfo2.settext ("Select Power Distribution SystemParameters "); Layoutroot.addview (Textinfo2,layoutparamstextinfo2); Add down Select box Spinner sp = new Spinner (this); Linearlayout.layoutparams LAYOUTPARAMSSP = new Linearlayout.layoutparams (layoutparams.match_parent,dip2px (this, 50) ); arrayadapter<string> myadapter = new Arrayadapter<string> (this, Android. R.layout.simple_spinner_item,spinnerdatas); Myadapter.setdropdownviewresource (Android. R.layout.simple_spinner_dropdown_item); Sp.setadapter (Myadapter); Sp.setonitemselectedlistener (New Onitemselectedlistener () {@Overridepublic void onitemselected (adapterview<? > arg0, View arg1,int position, long Arg3) {Toast.maketext (Testexpandablelistviewactivity.this, spinnerdatas[ Position], 1). Show ();} @Overridepublic void onnothingselected (adapterview<?> arg0) {}}); Layoutroot.addview (SP,LAYOUTPARAMSSP); Add Expandablelistview linearlayout.layoutparams Layoutparamsexpand = new Linearlayout.layoutparams ( Layoutparams.match_parent, layoutparams.wrap_content); Exlistview = new MyexpandablElistview (this); Layoutroot.addview (Exlistview, Layoutparamsexpand); Add Click Previous Next button Linearlayout.layoutparams Layoutparamsbottom = new Linearlayout.layoutparams ( LINEARLAYOUT.LAYOUTPARAMS.MATCH_PARENT,DIP2PX (this, 70)); LinearLayout layoutbottom = new LinearLayout (this); Layoutbottom.setlayoutparams (Layoutparamsbottom); Layoutbottom.setorientation (linearlayout.horizontal); Layoutbottom.setgravity (Gravity.center); Button leftbtn = New button (this); Leftbtn.settext ("previous step"); Button rightbtn = New button (this); Rightbtn.settext ("Next"); Layoutbottom.addview (LEFTBTN); Layoutbottom.addview (RIGHTBTN); Layoutroot.addview (Layoutbottom,layoutparamsbottom); Loading the interface into Main.addview (layoutRoot); Setcontentview (main); Exlistview.setongroupclicklistener (New Ongroupclicklistener () {@Overridepublic Boolean Ongroupclick ( Expandablelistview arg0, View arg1, int position,long arg3) {//true cannot be closed, false can be clicked to turn off return true;}}); Exlistview.setonchildclicklistener (New Onchildclicklistener () {@OverridepubLic boolean Onchildclick (Expandablelistview arg0, View arg1, int groupposition,int childposition, long Arg4) {return false ;}});} Class Myadapter extends Baseexpandablelistadapter {@Overridepublic Object getchild (int groupposition, int childposition {return Childarray.get (groupposition). get (childposition);} @Overridepublic long Getchildid (int groupposition, int childposition) {return childposition;} @Overridepublic view Getchildview (int groupposition, int childposition,boolean islastchild, view Convertview, ViewGroup Parent) {String string = Childarray.get (groupposition). get (childposition); return Getchildview (String,groupposition, childposition);} @Overridepublic int getchildrencount (int groupposition) {return childarray.get (groupposition). Size (); @Overridepublic Object getgroup (int groupposition) {return grouparray.get (groupposition);} @Overridepublic int GetGroupCount () {return grouparray.size ();} @Overridepublic long getgroupid (int groupposition) {return groupposition;} @Overridepublic View Getgroupview (int groupposition, Boolean Isexpanded,view Convertview, ViewGroup parent) {String string = Grouparray.get (g roupposition); return Getparentview (string,groupposition);} @Overridepublic Boolean hasstableids () {return false;} @Overridepublic boolean ischildselectable (int arg0, int arg1) {return true;} Public Relativelayout Getparentview (final String string,final int position) {Abslistview.layoutparams Layoutparams = new Abslistview.layoutparams (ViewGroup.LayoutParams.FILL_PARENT, dip2px (Testexpandablelistviewactivity.this, 60)); Relativelayout relalayout = new Relativelayout (testexpandablelistviewactivity.this); Relalayout.setlayoutparams (Layoutparams); Relalayout.setbackgroundcolor (Color.cyan); Relativelayout.layoutparams paramsimagetext = new Relativelayout.layoutparams (layoutparams.wrap_content, Layoutparams.wrap_content); Paramsimagetext.addrule (relativelayout.center_vertical, relativelayout.true); Paramsimagetext.setmargins (dip2px (Testexpandablelistviewactivity.this, 15),0, 0, 0); Initialize textInfo TextView textInfo = new TextView (testexpandablelistviewactivity.this); Textinfo.setgravity (gravity.center_horizontal); Textinfo.settextsize (18); Textinfo.settext (string);//Initialize Right add button relativelayout.layoutparams Paramsimageadd = new Relativelayout.layoutparams ( Layoutparams.wrap_content, layoutparams.wrap_content); Paramsimageadd.addrule (Relativelayout.align_parent_right, relativelayout.true); Paramsimageadd.addrule (relativelayout.center_vertical, relativelayout.true); Paramsimageadd.setmargins (0, 0, dip2px (testexpandablelistviewactivity.this, 5), 0); Paramsimageadd.width = dip2px (testexpandablelistviewactivity.this);p aramsimageadd.height = dip2px ( Testexpandablelistviewactivity.this, 20);//Initialize Right add button ImageView Imageadd = new ImageView ( Testexpandablelistviewactivity.this); Imageadd.setscaletype (SCALETYPE.FIT_XY); Imageadd.setadjustviewbounds (TRUE); Imageadd.setimageresource (R.drawable.add); Imageadd.setonclicklistener (New Onclicklistener () {@Overridepublic void OnClick (View arg0) {toast.maketext (Testexpandablelistviewactivity.this, "add", 1). Show (); Childarray.get (position). Add ("new Add"); notifydatasetchanged ();}}); Relalayout.addview (TextInfo, Paramsimagetext); Relalayout.addview (Imageadd, Paramsimageadd); return relalayout;} Public Relativelayout Getchildview (final String string,final int groupposition,final int childposition) { Abslistview.layoutparams layoutparams = new Abslistview.layoutparams (ViewGroup.LayoutParams.FILL_PARENT, dip2px ( Testexpandablelistviewactivity.this, 60)); Relativelayout relalayout = new Relativelayout (testexpandablelistviewactivity.this); Relalayout.setlayoutparams (Layoutparams); Relativelayout.layoutparams paramsimagetext = new Relativelayout.layoutparams (layoutparams.wrap_content, Layoutparams.wrap_content); Paramsimagetext.addrule (relativelayout.center_vertical, relativelayout.true); Paramsimagetext.setmargins (dip2px (Testexpandablelistviewactivity.this, 25), 0, 0, 0); Initialize TextInfo TextView TexTinfo = new TextView (testexpandablelistviewactivity.this); Textinfo.setgravity (gravity.center_horizontal); Textinfo.settextsize (18); Textinfo.settext (string); Textinfo.setid (100000001);//Initialize Right delete button Relativelayout.layoutparams Paramsimagedel = New Relativelayout.layoutparams (Layoutparams.wrap_content, layoutparams.wrap_content); Paramsimagedel.addrule (Relativelayout.align_parent_right, relativelayout.true); Paramsimagedel.addrule (relativelayout.center_vertical, relativelayout.true); Paramsimagedel.setmargins (0, 0, dip2px (testexpandablelistviewactivity.this, 5), 0); Paramsimagedel.width = dip2px (testexpandablelistviewactivity.this);p aramsimagedel.height = dip2px ( Testexpandablelistviewactivity.this, 20);//Initialize Right delete button ImageView Imageadd = new ImageView ( Testexpandablelistviewactivity.this); Imageadd.setscaletype (SCALETYPE.FIT_XY); Imageadd.setadjustviewbounds (TRUE); Imageadd.setimageresource (R.drawable.delete); Imageadd.setid (100000002); Imageadd.setonclicklistener (New OnClickListener () {@Overridepublic void OnClick (View arg0) {toast.maketext (testexpandablelistviewactivity.this, "delete", 1). Show (); Childarray.get (groupposition). Remove (childposition); notifydatasetchanged ();}); /Add Edittextrelativelayout.layoutparams Paramsedit = new Relativelayout.layoutparams (layoutparams.wrap_content, Layoutparams.wrap_content); Paramsedit.addrule (relativelayout.left_of, 100000002); Paramsedit.addrule (relativelayout.right_of, 100000001); Paramsedit.addrule (relativelayout.center_vertical, relativelayout.true); Paramsedit.setmargins (dip2px (Testexpandablelistviewactivity.this, 5), 0, 0, 0); EditText editinfo = new EditText (testexpandablelistviewactivity.this); Editinfo.sethint ("Please enter text content"); Set the maximum length that can be entered inputfilter[] filters = {New Inputfilter.lengthfilter (5)}; Editinfo.setfilters (filters); Editinfo.settextsize (18); Editinfo.setpadding (dip2px (Testexpandablelistviewactivity.this, 8), 0, 0, 0); Relalayout.addview (EditInfo, Paramsedit); Relalayout.addview (TextInfo, Paramsimagetext); Relalayout.addview (Imageadd, Paramsimagedel); return relalayout;}} /** * According to the resolution of the phone from the DP unit to be PX (pixels) */public static int dip2px (context context, float Dpvalue) {final float scale = Co Ntext.getresources (). Getdisplaymetrics (). density; return (int) (Dpvalue * scale + 0.5f); }/** * from PX (pixel) units to the cell phone's resolution to be DP */public static int Px2dip (context context, float Pxvalue) {final float scale = Context.getresources (). Getdisplaymetrics (). density; return (int) (Pxvalue/scale + 0.5f); } }
Source: http://download.csdn.net/detail/xiaoyi848699/8602437
Complex code layout