Complex code layout

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.