Android Spinner控件是一种常用的下拉框控件,可以让用户从指定的一组选项中选择一个。它是继承自AbsSpinner类的视图容器,提供了下拉列表的功能。在本篇文章中,我们将详细介绍Spinner控件的使用方法,以及相关示例。
1. Spinner控件属性
Spinner控件具有以下常用属性:
- android:id:控件ID
- android:layout_width:控件宽度
- android:layout_height:控件高度
- android:entries:将一组值显示在选择列表中
- android:prompt:设置弹出对话框的标题文本
- android:background:设置背景色
2. Spinner控件使用方法
2.1 布局文件中定义Spinner控件
在布局文件中定义一个Spinner控件,需要使用 ```xml android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#3F51B5" android:entries="@array/planets_array" /> ``` 2.2 为Spinner注册事件监听器 在创建Spinner控件后,需要注册一个选择监听器来响应用户的选择行为。注册监听器的方法有两种: ① 直接实现OnItemSelectedListener接口; ② 匿名内部类实现OnItemSelectedListener接口。 这里我们演示第二种方法。 ```java Spinner mySpinner = findViewById(R.id.my_spinner); mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView> adapterView, View view, int i, long l) { String item = adapterView.getSelectedItem().toString(); Toast.makeText(getApplicationContext(), "您选择了:" + item, Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView> adapterView) {} }); ``` 2.3 设置Spinner数据源 为了让Spinner显示数据,需要设置Spinner的数据源。Spinner的数据源通常是一个数组或列表。我们演示一个简单的String数组作为数据源。首先,我们需要在strings.xml文件中定义一个String数组: ```xml ``` 接着,在Activity中使用ArrayAdapter适配器来设置数据源,并将适配器添加到Spinner控件中。 ```java ArrayAdapter adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //为适配器设置自定义的独立菜单布局 mySpinner.setAdapter(adapter); ``` 3. Spinner控件实例 为了更好的理解Spinner控件的使用,下面演示几个实例来详细说明: 3.1 实例1:自定义菜单布局 在上面的例子中,我们使用了默认的独立菜单布局,而实际上我们可以自定义Spinner独立菜单的布局。在xml文件中创建自定义菜单布局,如下: ```xml android:layout_height="50dp" android:orientation="horizontal"> android:layout_width="match_parent" android:layout_height="30dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp"/> android:layout_width="wrap_content" android:layout_height="match_parent" android:textSize="18sp" android:gravity="center_vertical" /> ``` 在Activity中设置Spinner的适配器并为适配器设置自定义菜单布局,代码如下: ```java ArrayAdapter adapter.setDropDownViewResource(R.layout.spinner_drop_down_item); mySpinner.setAdapter(adapter); ``` 3.2 实例2:给Spinner加入省市二级联动功能 ```java //首先,我们需要定义一个Spinner控件和两个数组来存储省份和对应的城市 private Spinner spProvince; private String[] provinces = new String[]{"江苏省", "湖南省", "河南省", "广东省"}; private String[][] cities = new String[][]{ {"南京市", "苏州市", "常州市", "南通市", "扬州市"}, {"长沙市", "衡阳市", "岳阳市", "邵阳市", "郴州市"}, {"郑州市", "洛阳市", "开封市", "安阳市", "新乡市"}, {"广州市", "深圳市", "珠海市", "汕头市", "佛山市"} }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //然后,将数据源设置给Spinner spProvince = (Spinner)findViewById(R.id.sp_province); ArrayAdapter spProvince.setAdapter(array_adapter); spProvince.setOnItemSelectedListener(new ProvinceSelectedListener()); } //接下来实现SelectionListener class ProvinceSelectedListener implements AdapterView.OnItemSelectedListener{ @Override public void onItemSelected(AdapterView> parent, View view, int position, long id) { ArrayAdapter Spinner spCity = (Spinner)findViewById(R.id.sp_city); spCity.setAdapter(cityArray); } @Override public void onNothingSelected(AdapterView> parent) { } } ``` 3.3 实例3:利用一个简单的列表来作为Spinner的数据源 ```java private Spinner mSpinner; private String[] mItems = {"Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSpinner = (Spinner)findViewById(R.id.spinner); ArrayAdapter adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); mSpinner.setAdapter(adapter); mSpinner.setOnItemSelectedListener(new SpinnerSelectedListener()); } class SpinnerSelectedListener implements AdapterView.OnItemSelectedListener{ @Override public void onItemSelected(AdapterView> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "您选择了:" + mItems[position], Toast.LENGTH_SHORT).show(); } @Override public void onNothingSelected(AdapterView> parent) { } } ``` 4. 小结 通过本文讲解,相信大家已经掌握了Spinner控件的用法,掌握了在布局文件和代码中使用Spinner控件的方法,并通过示例了解了使用Spinner控件的场景。Spinner控件可谓是Android应用开发中最常用的控件之一,希望读者在以后的Android项目中也能够运用Spinner控件。 如果你喜欢我们三七知识分享网站的文章,
欢迎您分享或收藏知识分享网站文章
欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复