学Android---Spinner下拉列表
来源:互联网 发布:淘宝买电视没有合格证 编辑:程序博客网 时间:2024/06/06 00:30
1、什么是Spinner?
如题所示,spinner的实质就是下拉列表,比如我们在网上填写居住地资料时,通常就会弹出一个下拉列表供我们选择,而不是让我们自由填写。效果图如下:
2、Spinner的实现
(1)首先,在activity_main.xml布局文件中添加spinner控件,设置其有关属性,代码很简单,如下:
<Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content"/>
(2)现在已经有了Spinner的框架了,同之前的GridVIew和ListView一样,我们需要将具体数据添加到控件中,说到添加数据,于是Adapter又出现啦~~。来到MainActivity:
首先需要初始化Spinner:
private Spinner spinner;spinner=(Spinner) findViewById(R.id.spinner);
然后就开始绑定数据了:
// 添加一个下拉列表项的list存放数据 private List<String>list = new ArrayList<String>(); //定义适配器 private ArrayAdapter<String> adapter; //设置数据源 list.add("北京"); list.add("上海"); list.add("天津"); list.add("重庆"); //为下拉列表定义一个数组适配器 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list); //为适配器设置下拉列表下拉时的菜单样式(这里使用默认样式)adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //将适配器添加到下拉列表上 spinner.setAdapter(adapter);
这时运行程序就可以看到spinner已经设置好了,打开程序时默认选中的是list中的第一条数据,也就是“北京”。
3、为Spinner添加事件监听器
有布局就必须要有监听事件,否则这个布局就只是个摆设了,为了体现它的监听事件,我们在布局中添加一个TextView:
<TextView android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="25sp" //设置字体大小 android:textColor="#ff0000" //设置字体颜色 android:layout_alignParentLeft="true" android:layout_alignParentTop="true"/>
然后在MainActivity中对它进行初始化等:
private TextView textview;textview=(TextView) findViewById(R.id.textview);textview.setText("您选择的城市是:");
然后添加Spinner的事件监听器:OnItemSelectedListener,它默认的方法如下:
//为下拉列表设置各种事件的响应,这个事件响应菜单被选中spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view,int position, long id) { // TODO Auto-generated method stub String cityName = adapter.getItem(position); textview.setText("您选择的城市是:"+cityName); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub }});
这样,当你选中某一项时,文字就会发生相应的改变,显示你所选择的信息,如上图所示的那样。
4、下面给出所有完整代码
(1)activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="25sp" android:textColor="#ff0000" android:layout_alignParentLeft="true" android:layout_alignParentTop="true"/> <Spinner android:id="@+id/spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textview" android:layout_alignLeft="@+id/textview"/></RelativeLayout>
(2)MainActivity:
package com.example.spinnerdemo;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.app.Activity;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class MainActivity extends Activity { private Spinner spinner; private TextView textview; // 1、添加一个下拉列表项的list private List<String>list = new ArrayList<String>(); private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textview=(TextView) findViewById(R.id.textview); spinner=(Spinner) findViewById(R.id.spinner); textview.setText("您选择的城市是:"); //设置数据源 list.add("北京"); list.add("上海"); list.add("天津"); list.add("重庆"); //2、为下拉列表定义一个数组适配器 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list); //3、为适配器设置下拉列表下拉时的菜单样式 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //4、将适配器添加到下拉列表上 spinner.setAdapter(adapter); //5、为下拉列表设置各种事件的响应,这个事件响应菜单被选中 spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub String cityName = adapter.getItem(position); textview.setText("您选择的城市是:"+cityName); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); }}
0 0
- 学Android---Spinner下拉列表
- Android 下拉列表 Spinner
- Android Spinner 下拉列表
- android spinner下拉列表
- android Spinner 下拉列表
- android Spinner下拉列表
- android Spinner(下拉列表)
- Android下拉列表Spinner
- Android:下拉列表Spinner
- android--下拉列表 Spinner。
- Spinner下拉列表【Android】
- 从零开始学android<Spinner下拉列表框的使用.九.>
- 10. android Spinner 下拉列表
- Android下拉列表(Spinner)例子
- android 下拉列表(Spinner)
- Android--下拉列表框(Spinner)
- Android 下拉列表Spinner控件
- android 控件 下拉列表(Spinner)
- 【Leetcode】之Search Insert Position
- spring的配置文件详解
- Android:解决TextView排版混乱问题 ——诺诺"涂鸦"记忆
- nginx 源码学习笔记(二十一)—— event 模块(二) ——事件驱动核心ngx_process_events_and_timers
- Linux学习笔记(一)
- 学Android---Spinner下拉列表
- Hibernate学习(第一天)
- java 获取date日期的String格式
- Qt GUI程序中主线程与非主线程之间的通信
- Lease 机制在分布式系统中的应用
- Oracle复杂查询21道题精析
- android app mainfest(2)
- NYOJ-63 小猴子下落【满二叉树】
- http://blog.163.com/zhaoyanping_1125/blog/static/20132915320120711355117/