This paper gives a detailed summary and analysis of the Android programming pull-down menu spinner usage. Share to everyone for your reference, specific as follows:
The spinner control is also a list-type control, and its inheritance relationship is as follows:
Java.lang.Object
↳android.view.view
↳android.view.viewgroup
↳android.widget.adapterview<textends android.widget.adapter>
↳android.widget.absspinner
↳android.widget.spinner
Android.widget.Spinner inherits the Android.view.ViewGroup class .
In Android UI development, Spinner (Drop-down list) is always available, a simple custom Spinner production we just need to remember this important five steps, a Spinner can be applied and born.
(1) A new Android project, named Spinner. At the same time to build an activity, named Spinneractivity.
(2) Modify Res/layout/main.xml
<?xml version= "1.0" encoding= "Utf-8"?> <linearlayout xmlns:android=
"http://schemas.android.com/apk/" Res/android "
android:orientation=" vertical "
android:layout_width=" fill_parent "
android:layout_" height= "Fill_parent"
>
<textview
android:id = "@+id/textview_city"
android:layout_width = " Wrap_content "
android:layout_height =" Wrap_content "
android:text =" City: "
/>
<!-- Define a city information drop-down menu-->
<spinner
android:id = "@+id/spinner_city"
android:layout_width = "Wrap_ Content "
android:layout_height =" Wrap_content ">
</spinner >
</LinearLayout>
(3) Spinneractivity.java Code
Package cn.com;
Import java.util.ArrayList;
Import java.util.List;
Import android.app.Activity;
Import Android.os.Bundle;
Import android.view.MotionEvent;
Import Android.view.View;
Import Android.widget.AdapterView;
Import Android.widget.ArrayAdapter;
Import Android.widget.Spinner;
Import Android.widget.TextView; The public class Spinneractivity extends activity {/** called the ' when the ' is the ' is ' the ' activity ' is a-created private List<stri
ng> list = new arraylist<string> ();
Private TextView Mytextview;
Private Spinner Myspinner;
Private arrayadapter<string> adapter;
@Override public void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.main);
First step: Add a list of dropdown items, where the items added are Drop-down list menu items list.add ("Beijing");
List.add ("Shanghai");
List.add ("Shenzhen");
List.add ("Fuzhou");
List.add ("Xiamen");
Mytextview = (TextView) Findviewbyid (r.id.textview_city);
Myspinner = (Spinner) Findviewbyid (r.id.spinner_city); Step two: Define an adapter for the Drop-down list,Here we use the list defined in the front. adapter = new Arrayadapter<string> (this,android.
R.layout.simple_spinner_item, list);
Step Three: Set the menu style for the adapter when you drop down the Drop-down list. Adapter.setdropdownviewresource (Android.
R.layout.simple_spinner_dropdown_item);
Step Fourth: Add the adapter to the Drop-down list on Myspinner.setadapter (adapter); Step Fifth: Set up a response to a variety of events for the Drop-down list, the Response menu is selected Myspinner.setonitemselectedlistener (new Spinner.onitemselectedlistener () {public
void onitemselected (adapterview<?> arg0, View arg1, int arg2, long arg3) {//TODO auto-generated method stub
/* Bring the selected Myspinner value into the Mytextview/Mytextview.settext ("Your choice is:" + adapter.getitem (arg2));
/* Will myspinner display * * arg0.setvisibility (view.visible); public void onnothingselected (adapterview<?> arg0) {//TODO auto-generated method stub Mytextview.settex
T ("NONE");
Arg0.setvisibility (view.visible);
}
}); /* Drop-down Menu Popup Content Options Touch-screen event handling/Myspinner.setontouchlistener (new Spinner.ontouchlistener () {public boolean Ontouch (View V, Moti OnEvent event) {//TODO auto-generated Method Stub/** * */return false;
}
}); /* Drop-down Menu Popup Content option focus Change event handling/Myspinner.setonfocuschangelistener (new Spinner.onfocuschangelistener () {public void
Onfocuschange (View V, boolean hasfocus) {//TODO auto-generated Method stub}});
}
}
The results of the operation are shown in the following illustration:
Add: Spinner Control Usage Example 2
Usage 1:
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android"
xmlns:tools= "http:// Schemas.android.com/tools "
android:id=" @+id/container "
android:orientation=" vertical "
android: Layout_width= "Fill_parent"
android:layout_height= "fill_parent"
tools:context= "com.example.mars_2100_" Spinner. Mainactivity "
tools:ignore=" Mergerootframe ">
<spinner android:layout_width=" Fill_parent
" android:layout_height= "Wrap_content"
android:id= "@+id/spinnerid"/>
</LinearLayout>
Package Com.example.mars_2100_spinner;
Import android.support.v7.app.ActionBarActivity;
Import Android.support.v7.app.ActionBar;
Import android.support.v4.app.Fragment;
Import Android.os.Bundle;
Import Android.view.LayoutInflater;
Import Android.view.Menu;
Import Android.view.MenuItem;
Import Android.view.View;
Import Android.view.ViewGroup;
Import Android.widget.AdapterView;
Import Android.widget.ArrayAdapter;
Import Android.widget.Spinner;
Import Android.widget.Toast;
Import Android.os.Build;
public class Mainactivity extends Actionbaractivity {private static final string[] M_arr = {"First group", "second group", "third Group"};
@Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Spinner _spin = (Spinner) Findviewbyid (R.id.spinnerid); arrayadapter<string> ada = new Arrayadapter<string> (this, Android.
R.layout.simple_spinner_item, M_arr); Ada.setdropdownviewresource (Android. R.layout.simple_spinner_dropdown_item);
_spin.setadapter (ADA); _spin.setonitemselectedlistener (New Spinner.onitemselectedlistener () {public void onitemselected (ADAPTERVIEW<?
> arg0, View arg1, int arg2, long arg3) {disptoast ("select +m_arr[arg2]");
Arg0.setvisibility (view.visible);
public void onnothingselected (adapterview<?> arg0) {//}}); /*if (savedinstancestate = = null) {Getsupportfragmentmanager (). BeginTransaction (). Add (R.id.container, new
Placeholderfragment ()). commit ();
}*/} public void Disptoast (String str) {toast.maketext (this, str, toast.length_short). Show (); @Override public boolean Oncreateoptionsmenu (Menu menu) {//Inflate the menu; This adds the items to the action bar if I
T is present.
Getmenuinflater (). Inflate (R.menu.main, menu);
return true; @Override public boolean onoptionsitemselected (MenuItem Item) {//Handle Action Bar item clicks here. The action bar would//automatically handle clicks on the Home/up button, so long//As you specify a parent aCtivity in Androidmanifest.xml.
int id = item.getitemid ();
if (id = = r.id.action_settings) {return true;
return super.onoptionsitemselected (item);
}/** * A placeholder fragment containing a simple view. */public static class Placeholderfragment extends Fragment {public placeholderfragment () {} @Override public View Oncreateview (Layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) {View Rootview = inflater.inflate
(R.layout.fragment_main, container, false);
return rootview;
}
}
}
Usage 2:
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android"
xmlns:tools= "http:// Schemas.android.com/tools "
android:id=" @+id/container "
android:orientation=" vertical "
android: Layout_width= "Fill_parent"
android:layout_height= "fill_parent"
tools:context= "com.example.mars_2100_" Spinner. Mainactivity "
tools:ignore=" Mergerootframe ">
<spinner android:layout_width=" Fill_parent
" android:layout_height= "Wrap_content"
android:id= "@+id/spinnerid2"/> <textview android:id=
"@+id/" TextView1 "
android:layout_width=" fill_parent "
android:layout_height=" wrap_content "/>
< Spinner android:layout_width= "fill_parent" android:layout_height= wrap_content "android:id=" @+id/
SpinnerId3 "/>
<textview android:id=
@+id/textview2" android:layout_width= "Fill_parent" android:layout_height= "Wrap_content"/>
</LinearLayout>
Package Com.example.mars_2100_spinner;
Import android.support.v7.app.ActionBarActivity;
Import Android.support.v7.app.ActionBar;
Import android.support.v4.app.Fragment;
Import android.app.Activity;
Import Android.os.Bundle;
Import Android.view.LayoutInflater;
Import Android.view.Menu;
Import Android.view.MenuItem;
Import Android.view.View;
Import Android.view.ViewGroup;
Import Android.widget.AdapterView;
Import Android.widget.AdapterView.OnItemSelectedListener;
Import Android.widget.ArrayAdapter;
Import Android.widget.Spinner;
Import Android.widget.TextView;
Import Android.os.Build; public class Main02activity extends activity {Static final string[] constellations = new string[] {"Aries", "Taurus", "Gemini",
"Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Magic Scorpion", "Aquarius", "Pisces"};
@Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.LAYOUT.ACTIVITY_MAIN02);
Final TextView txt2 = (TextView) Findviewbyid (R.ID.TEXTVIEW1); Spinner S1= (Spinner) Findviewbyid (R.ID.SPINNERID2); Final arrayadapter<charsequence> adapter = Arrayadapter.createfromresource (this, R.array.planets_array, Android.
R.layout.simple_spinner_item); Adapter.setdropdownviewresource (Android.
R.layout.simple_spinner_dropdown_item);
S1.setadapter (adapter);
S1.setprompt ("test"); S1.setonitemselectedlistener (New Onitemselectedlistener () {@Override public void onitemselected (ADAPTERVIEW<?
> Parent, view view, int position, long id) {Txt2.settext (Adapter.getitem (position). ToString ());
@Override public void onnothingselected (adapterview<?> parent) {Txt2.settext ("unchecked");
}
});
Final TextView TXT4 = (TextView) Findviewbyid (R.ID.TEXTVIEW2);
Spinner s2 = (Spinner) Findviewbyid (R.ID.SPINNERID3); arrayadapter<charsequence> Adapterc = new Arrayadapter<charsequence> (this, Android.
R.layout.simple_spinner_item, constellations); Adapterc.setdropdownviewresource (Android.
R.layout.simple_spinner_item); S2.setadaptER (ADAPTERC); S2.setonitemselectedlistener (New Onitemselectedlistener () {public void onitemselected (adapterview<?> parent,
View view, int position, long id) {Txt4.settext (constellations[position]);
public void onnothingselected (adapterview<?> parent) {Txt4.settext ("unchecked");
}
}); @Override public boolean Oncreateoptionsmenu (Menu menu) {//Inflate the menu; This adds the items to the action bar if I
T is present.
Getmenuinflater (). Inflate (r.menu.main02, menu);
return true; @Override public boolean onoptionsitemselected (MenuItem Item) {//Handle Action Bar item clicks here. The action bar would//automatically handle clicks on the Home/up button, so long//as your specify a parent activity in
androidmanifest.xml. int id = item.getitemid ();
if (id = = r.id.action_settings) {return true;
return super.onoptionsitemselected (item);
}/** * A placeholder fragment containing a simple view. */public static class Placeholderfragment extends Fragment {public placeholderfragment () {} @Override public View oncreateview (layoutinflater inflater, ViewGroup con
Tainer, Bundle savedinstancestate) {View Rootview = inflater.inflate (R.layout.fragment_main02, container, false);
return rootview;
}
}
}
<?xml version= "1.0" encoding= "Utf-8"?>
<resources>
<string name= "App_name" >mars_2100_ spinner</string>
<string name= "Hello_world" >hello world!</string>
"<string name=" Action_settings ">Settings</string>
<string-array name=" Planets_array ">
<item> mercury</item>
<item>Venus</item>
<item>Earth</item>
<item> mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item> uranus</item>
<item>Neptune</item>
</string-array>
<string name= " Title_activity_main02 ">Main02Activity</string>
</resources>
I hope this article will help you with the Android program.