1. Simple implementation:
Activity_main.xml file:
<textview
Android:id= "@+id/text"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"
/>
<spinner
Android:id= "@+id/spinner"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content" >
</Spinner>
Mainactivity.java file:
public class Mainactivity extends Appcompatactivity {
Private TextView TextView;
Private Spinner Spinner;
Private list<string> List;
Private arrayadapter<string>adapter;
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Instantiation of
textview= (TextView) Findviewbyid (R.id.text);
Spinner= (Spinner) Findviewbyid (R.id.spinner);
Textview.settext ("Your chosen city of Beijing");
Set up a data source
List=new arraylist<string> ();
List.add ("Beijing");
List.add ("Shanghai");
List.add ("Guangzhou");
List.add ("Shenzhen");
New Arrayadapter,android. R.layout.simple_spinner_item is the default style called in Android Studio
Adapter=new arrayadapter<string> (this,android. R.layout.simple_spinner_item,list);
Adapter setting a drop-down list
Adapter.setdropdownviewresource (Android. R.layout.simple_spinner_dropdown_item);
Spinner Load Adapter
Spinner.setadapter (adapter);
Implementing Listener Events
Spinner.setonitemselectedlistener (New Adapterview.onitemselectedlistener () {
@Override
public void onitemselected (adapterview<?> parent, view view, int position, long ID) {
String Cityname=adapter.getitem (position);
String Cityname=list.get (position);
Textview.settext ("The city you selected is" +cityname);
}
@Override
public void onnothingselected (adapterview<?> parent) {
}
});
}
}
2. Custom implementation: Add icon
Mainactivity.xml file:
<textview
Android:textsize= "25SP"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"
Android:id= "@+id/text"/>
<spinner
android:layout_margintop= "10DP"
Android:id= "@+id/spinner"
Android:layout_width= "Match_parent"
android:layout_height= "Wrap_content" >
</Spinner>
Newly added item.xml files:
<imageview
Android:id= "@+id/imge"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"/>
<textview
android:layout_margintop= "5DP"
android:layout_marginleft= "30DP"
Android:id= "@+id/city"
Android:textsize= "25SP"
Android:textcolor= "#ff0000"
Android:layout_width= "Wrap_content"
android:layout_height= "Wrap_content"/>
Mainactivity.java file:
public class Mainactivity extends Activity implements adapterview.onitemselectedlistener{
Private TextView TextView;
Private Spinner Spinner;
Private list<map<string,object>> dataList;
Private Simpleadapter adapter;
Private string[] cityname={"Shanghai", "Guangzhou", "Beijing", "Shenzhen", "Hangzhou", "Nanjing"};
Private int[] Icon={r.mipmap.ic_launcher,r.mipmap.ic_launcher,r.mipmap.ic_launcher,r.mipmap.ic_launcher, R.mipmap.ic_launcher,r.mipmap.ic_launcher};
@Override
protected void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
Setcontentview (R.layout.activity_main);
Instantiation of
textview= (TextView) Findviewbyid (R.id.text);
Textview.settext ("The city you selected is Shanghai");
Spinner= (Spinner) Findviewbyid (R.id.spinner);
Preparing the data source
Datalist=new arraylist<> ();
To create a new adapter, pay particular attention to the definitions of the From and to two variables
Adapter=new Simpleadapter (This,getdata (), r.layout.item,new string[]{"image", "City"},new int[]{r.id.imge,r.id.city });
Load Adapter
Spinner.setadapter (adapter);
Implementing Listener Events
Spinner.setonitemselectedlistener (this);
}
Private List<map<string,object>> GetData () {
for (int i=0;i<cityname.length;i++) {
Map<string,object>map=new hashmap<> ();
Map.put ("image", icon[i]);
Map.put ("City", Cityname[i]);
Datalist.add (map);
}
return dataList;
}
@Override
public void onitemselected (adapterview<?> parent, view view, int position, long ID) {
String city= datalist.get (position). ToString ();
Textview.settext ("The city you selected is" +city);
Toast.maketext (This, "The city you selected is" +city,toast.length_short). Show ();
}
@Override
public void onnothingselected (adapterview<?> parent) {
}
}
Spnner implementation of Android Studio rookie real-combat project