方法一:
通过entries属性,指定列表项
1.main.xml文件代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SpinnerActivity" android:orientation="horizontal" > <TextView android:layout_width="150dp" android:layout_height="50dp" android:text="附近区域:" android:textSize="25sp" android:gravity="right|center" /> <Spinner android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:id="@+id/spinner_location" android:entries="@array/spinner" /> </LinearLayout>
2.资源文件@array/spinner 需要在values文件下面创建,具体代码如下:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="spinner"> <item>全部</item> <item>上海</item> <item>天津</item> <item>深圳</item> </string-array> </resources>
效果如下:
方法二:
使用数组适配器ArrayAdapter,展现列表项
public class SpinnerActivity extends AppCompatActivity { private Spinner spinner_location; private ArrayAdapter arrayAdapter; //定义字符串数组,指定数组的元素 private String[] spinner = new String[]{"全部","上海","深圳","北京"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_spinner); spinner_location=findViewById(R.id.spinner_location); //参数1.上下文对象 参数2.列表项的样式,Android为我们提供的资源样式为:android.R.layout.simple_spinner_item //参数3.定义的字符串数组 arrayAdapter=new ArrayAdapter(this, android.R.layout.simple_spinner_item,spinner); //设置适配器列表框下拉时的列表样式 arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //将适配器与下拉列表框关联起来 spinner_location.setAdapter(arrayAdapter); String s = spinner_location.getSelectedItem().toString(); Toast.makeText(this, s, Toast.LENGTH_SHORT).show(); } }
效果同上。
获取选中项的值,通过调用选择列表项监听器setOnItemSelectedListener
使用其中的getItemAtPosition 获取选中的值
spinner_location.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { String result = parent.getItemAtPosition(position).toString(); Toast.makeText(SpinnerActivity.this, result, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView<?> parent) { } });
效果如下:
Spinner中常用的属性:
【 常 用 属 性 】 1. android:entries="@array/menu_type" // 绑定XML文件找那个的数据源 2. android:spinnerMode="dropdown" // 显示模式 "dropdown" 直接下拉模式 "dialog" 对话框效果模式 4. android:dropDownWidth="250dp" // 下拉框宽度