Spinner<一>
来源:互联网 发布:新手c#编程题及答案 编辑:程序博客网 时间:2024/05/16 17:40
关于Spinner
Spinner(下拉菜单)是Android开发中常用到的一种控件,可以用来实现TextView等控件内容的选择性自动填写,可以避免这部分内容用户自己随意填写的不规范,比如地址填写的选择。下面我们以一个简单的Demo来了解Spinner最简单的用法。Spinner也需要与数据适配器配合使用
使用Spinner的基本步骤:
添加一个下拉菜单的list,这里添加的项就是下拉菜单的菜单项。(也就是为spinner添加数据源)
为下拉菜单定义一个适配器,这里就用到里前面定义的list。(也就是将数据源存放进这个适配器)
为适配器设置下拉列表下拉时的菜单样式。(注意:这里是适配器,而不是spinner)
将适配器绑定到spinner(下拉菜单)上。
为spinner的下拉菜单绑定监听器,以响应各个菜单的操作。
下面我们一起看一个Demo代码
一、MainActivity.java代码
package com.shi.androidstudio.spinner;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;import java.util.ArrayList;import java.util.List;/** * Spinner简单使用 * @author SHI * @time 2017/2/20 17:30 */public class MainActivity extends AppCompatActivity { private TextView textView; //Spinner控件 private Spinner spinner; //数据源 private List<String> listData = new ArrayList<>(); //spinner的数据适配器 private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinner = (Spinner) findViewById(R.id.spinner); textView = (TextView) findViewById(R.id.textView); //将下面这些数据添加到数据源中listData listData.add("北京"); listData.add("上海"); listData.add("广州"); listData.add("深圳"); listData.add("杭州"); //为spinner设置样式 adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,listData);// adapter = new ArrayAdapter<String>(this,R.layout.layout_spinner_select,listData); //为适配器设置下拉列表的样式,如果不设置,则用上面设置给spinner的样式// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); adapter.setDropDownViewResource(R.layout.layout_spinner_dropdown); //设置数据适配器 spinner.setAdapter(adapter); //为spinner设置点击事件监听 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { textView.setText("当前选择的城市是:"+adapter.getItem(position)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); }}
二、代码中用到的布局文件
- activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="30dp" android:textSize="20sp" /> <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="40dp" android:layout_marginTop="20dp" /></LinearLayout>
- layout_spinner_select.xml
<TextView android:layout_gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="20sp" android:textColor="@android:color/holo_green_dark" xmlns:android="http://schemas.android.com/apk/res/android" />
- layout_spinner_dropdown.xml
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"style="?android:attr/spinnerDropDownItemStyle"android:singleLine="true"android:layout_width="match_parent"android:layout_height="35dp"android:ellipsize="marquee"/>
三、效果图
1 0
- Spinner<一>
- Spinner使用(一)
- Spinner
- spinner
- spinner
- Spinner
- Spinner
- Spinner
- Spinner
- Spinner
- Spinner
- Spinner
- Spinner
- spinner
- Spinner
- spinner
- Spinner
- spinner
- web监听器的用途
- Andorid Studio 中取消SVN的关联
- Freemarker+SpringMvc 整合(纯净版。。)
- java内存泄漏
- 智力问题(转载)
- Spinner<一>
- Servlet中的过滤器(拦截器)Filter与监听器Listener的作用和区别
- rails 关于连接多个数据库使用同一个database.yml文件的方法
- 支付宝沙箱测试-ALI40247
- struts-default.xml和struts.properties
- linux(一)
- java注解
- android多进程深入分析
- VC 判断CString字符串中各位是数字,大小写字母,符号,汉字。(UNICODE和ANSI)