First, mainactivity.
Packagecom.example.spinnertest;Importjava.util.ArrayList;Importjava.util.List;ImportAndroid.os.Bundle;Importandroid.app.Activity;ImportAndroid.content.Context;Importandroid.text.TextUtils;ImportAndroid.view.LayoutInflater;ImportAndroid.view.Menu;ImportAndroid.view.View;ImportAndroid.view.ViewGroup;ImportAndroid.widget.AdapterView;ImportAndroid.widget.AdapterView.OnItemSelectedListener;ImportAndroid.widget.ArrayAdapter;ImportAndroid.widget.Spinner;ImportAndroid.widget.TextView;ImportCOM.EXAMPLE.SPINNERTEST.R; Public classMainactivityextendsActivity {PrivateSpinner MyS; PrivateList<string> datas=NewArraylist<string>(); PrivateMyspinneradapter Sadapter; PrivateString value; @Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); MyS=(Spinner) Findviewbyid (r.id.spinners); InitData (); Sadapter=NewMyspinneradapter ( This, datas); Mys.setadapter (Sadapter); Refreshshowview (); Mys.setonitemselectedlistener (NewOnitemselectedlistener () {@Override Public voidOnitemselected (adapterview<?>arg0, View arg1,intArg2,LongArg3) { //TODO auto-generated Method StubValue =Sadapter.getitem (ARG2); } @Override Public voidOnnothingselected (adapterview<?>arg0) { //TODO auto-generated Method Stub } }); } Private voidInitData () {//TODO auto-generated Method StubDatas.add ("a"); Datas.add ("B"); Datas.add (C); Datas.add ("D"); Datas.add (E); Datas.add ("F"); Value= Datas.get (4); } @Override Public BooleanOncreateoptionsmenu (Menu menu) {//inflate the menu; This adds items to the action bar if it is present.getmenuinflater (). Inflate (R.menu.main, menu); return true; } classMyspinneradapterextendsArrayadapter<string> { PrivateList<string>mlist; PrivateContext Mcontext; classViewholder { PublicTextView Spinnertv; PublicViewholder (View v) {SPINNERTV=(TextView) V.findviewbyid (R.ID.SPINNER_TV); } } PublicMyspinneradapter (context context, list<string>list) { Super(CONTEXT,R.LAYOUT.SPINNER_ITEM,R.ID.SPINNER_TV, list); //TODO auto-generated Constructor stubsetData (list); Mcontext=context; } Public voidSetData (list<string>list) {mlist=list; Notifydatasetchanged (); } @Override Public intGetCount () {//TODO auto-generated Method Stub if(mlist==NULL){ return0; } returnmlist.size (); } @Override PublicString GetItem (intposition) { //TODO auto-generated Method Stub if(mlist==NULL){ return NULL; } returnMlist.get (position); } @Override Public LongGetitemid (intposition) { //TODO auto-generated Method Stub returnposition; } @Override PublicView Getdropdownview (intposition, View Convertview, ViewGroup parent) {Viewholder Holder=NULL; if(convertview==NULL) {Convertview=Layoutinflater.from (Mcontext). Inflate (R.layout.spinner_item,NULL); Holder=NewViewholder (Convertview); Convertview.settag (holder); }Else{Holder=(Viewholder) Convertview.gettag (); } String Mylistitem=Mlist.get (position); Holder.spinnerTv.setText (Mylistitem); returnConvertview; } } Private voidRefreshshowview () {if(!Textutils.isempty (value)) { inti = 0; for(String item:datas) {if(Value.equals (item)) { Break; } I++; } if(i==datas.size ()) {i= Datas.size ()-1; } mys.setselection (i); } };}
And then the Activity_main.xml.
<LinearLayoutxmlns: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"android:orientation= "Horizontal"android:gravity= "Center_vertical"Tools:context=". Mainactivity " > <TextViewAndroid:layout_width= "Wrap_content"Android:layout_height= "Wrap_content"Android:text= "title"/> <SpinnerAndroid:id= "@+id/spinners"Android:layout_width= "0DP"Android:layout_weight= "1"Android:layout_height= "Wrap_content"/> </LinearLayout>
Then the Spinner_item:
<?XML version= "1.0" encoding= "Utf-8"?><Relativelayoutxmlns:android= "Http://schemas.android.com/apk/res/android"Android:layout_width= "Match_parent"Android:layout_height= "Wrap_content" > <TextViewAndroid:layout_width= "Match_parent"Android:layout_height= "Wrap_content"android:gravity= "Center"Android:paddingtop= "10DP"Android:paddingbottom= "10DP"Android:id= "@+id/spinner_tv"/></Relativelayout>
Use of Android Spinner