Android学习之Spinner

         Android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是从新介绍一遍吧。Spinner位于 android.widget包下,每次只显示用户选中的元素,当用户再次点击时,会弹出选择列表供用户选择,而选择列表中的元素同样来自适配器。Spinner是View类得一个子类。下面来具体看一下怎么回事:

1.效果图:

2.XML代码

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:id="@+id/widget28"
 4     android:layout_width="fill_parent"
 5     android:layout_height="fill_parent"
 6     android:orientation="vertical" >
 7 
 8     <TextView
 9         android:id="@+id/TextView_Show"
10         android:layout_width="fill_parent"
11         android:layout_height="wrap_content"
12         android:text="你选择的是"
13         android:textSize="25sp" >
14     </TextView>
15 
16     <Spinner
17         android:id="@+id/spinner_City"
18         android:layout_width="fill_parent"
19         android:layout_height="wrap_content" >
20     </Spinner>
21 
22 </LinearLayout>

3.java代码

 1 package com.example.spinner;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 import android.app.Activity;
 6 import android.os.Bundle;
 7 import android.view.View;
 8 import android.widget.AdapterView;
 9 import android.widget.ArrayAdapter;
10 import android.widget.Spinner;
11 import android.widget.TextView;
12 
13 public class MainActivity extends Activity {
14 
15     private List<String> list = new ArrayList<String>();
16     private TextView myTextView;
17     private Spinner mySpinner;
18     private ArrayAdapter<String> adapter;
19 
20     @Override
21     public void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.activity_main);
24         initSpinner();
25     }
26 
27     private void initSpinner() {
28         // 第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项
29         list.add("北京");
30         list.add("上海");
31         list.add("深圳");
32         list.add("南京");
33         list.add("重庆");
34         myTextView = (TextView) findViewById(R.id.TextView_Show);
35         mySpinner = (Spinner) findViewById(R.id.spinner_City);
36         // 第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。
37         adapter = new ArrayAdapter<String>(this,
38                 android.R.layout.simple_spinner_item, list);
39         // 第三步:为适配器设置下拉列表下拉时的菜单样式。
40         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
41         // 第四步:将适配器添加到下拉列表上
42         mySpinner.setAdapter(adapter);
43         // 第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中
44         mySpinner
45                 .setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
46                     public void onItemSelected(AdapterView<?> arg0, View arg1,
47                             int arg2, long arg3) {
48                         // TODO Auto-generated method stub
49                         /* 将所选mySpinner 的值带入myTextView 中 */
50                         myTextView.setText("您选择的是:" + adapter.getItem(arg2));
51                         /* 将mySpinner 显示 */
52                         arg0.setVisibility(View.VISIBLE);
53                     }
54 
55                     public void onNothingSelected(AdapterView<?> arg0) {
56                         // TODO Auto-generated method stub
57                         // myTextView.setText("NONE");
58                         // arg0.setVisibility(View.VISIBLE);
59                     }
60                 });
61     }
62 }
原文地址:https://www.cnblogs.com/summers/p/4086406.html