1、先上图
2、创建Spinner分为三步:
2.1、首先在Activity的XML中添加
2.2、给Spinner提供相对应的数据源,及样式;
2.3、创建Spinner相关的ArrayAdapter;
3、下面用两种方式来创建一个Spinner;
3.1、第一种方式使用ArrayAdapter的静态方法createFromResource();
3.1.1、该方法需要传入三个参数,第一个为Context对象,即当前Activity;
3.1.2、第二个参数为textArrayResId,在String.xml中创建一个
3.1.3、第三个参数为Item样式,可以使用系统自带样式R.layout.support_simple_spinner_dropdown_item;
3.2、第二种方式使用ArrayAdapter的构造方法动态构建;
3.2.1、该方法需要传入四个参数,第一个Context对象,即为当前Activity;
3.2.2、第二个参数为resource,即Item的样式;
3.2.3、第三个参数为resource当中TextView的id;
3.2.4、第四个参数为数据源,提供一个list,list中可以为任何对象,结果取对象的toString方法;
4、设置监听,setOnItemSelectedListener()方法;
string.xml
1 2 3 4 5 6 7 8 9 10 11 12 | <resources> <string name="app_name">Spinner</string> <string-array name="spinner"> <item>AAAA</item> <item>BBBB</item> <item>CCCC</item> <item>DDDD</item> <item>EEEE</item> <item>FFFF</item> <item>GGGG</item> </string-array> </resources> |
item.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="44dp" android:text="Content" android:gravity="center_vertical" android:padding="5dp" /> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#ACACAC" /> </LinearLayout> |
Activity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | package com.yusian.spinner; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.SpinnerAdapter; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private Spinner spinner; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = (Spinner) findViewById(R.id.spinner); // 方式一:使用ArrayAdapter的静态方法加载本地资源创建 ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner, // 数据 R.layout.support_simple_spinner_dropdown_item // 样式 ); // 方式二:使用ArrayAdapter的构造方法动态创建 // List<String> list = new ArrayList<>(); // list.add("11111"); // list.add("22222"); // list.add("33333"); // adapter = new ArrayAdapter(this, // R.layout.item, // 自定义样式 // R.id.textview, // 指定显示内容的TextView // list // 数据源 // ); spinner.setAdapter(adapter); // 设置监听 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Log.d("SALog", "onItemSelected: " + position); } @Override public void onNothingSelected(AdapterView<?> parent) { Log.d("SALog", "onNothingSelected: "); } }); } } |