android:Spinner(下拉框)控件的使用

1.效果图

2.创建页面文件(main.xml)

 1     <Spinner
 2         android:id="@+id/spinner1"
 3         android:layout_width="match_parent"
 4         android:layout_height="wrap_content" />
 5
 6     <TextView
 7         android:id="@+id/tvResult"
 8         android:layout_width="match_parent"
 9         android:layout_height="wrap_content"
10         android:text="选择的水果" />

3.创建下拉框的数据源

1        List<String> list = new ArrayList<String>();
2        list.add("苹果");
5        list.add("香蕉");
7        list.add("橘子");
9        list.add("香蕉");

4.创建适配器(下拉框的数据源是来自适配器)

ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);

5.为适配器添加样式      

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

系统提供的样式如下

simple_spinner_dropdown_item(列表-间距较高比较好看)

simple_spinner_item(列表-间距紧凑不好看)

 

 

simple_list_item_checked(复选框-选中的有绿沟)

 

 

simple_list_item_single_choice (单选按钮)

 

6.向控件Spinner添加适配器

1       Spinner sp=(Spinner) findViewById(R.id.spinner1);
2       sp.setAdapter(adapter); 

释义

1. setAdapter(SpinnerAdapter adapter) ,从类的继承关系上看,ArrayAdapter是SpinnerAdapter接口的间接实现类

7.实现选择项事件(使用匿名类实现接口)

 1         sp.setOnItemSelectedListener(new OnItemSelectedListener() {
 2             // parent: 为控件Spinner   view:显示文字的TextView   position:下拉选项的位置从0开始
 3             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
 4                 TextView tvResult = (TextView) findViewById(R.id.tvResult);
 5                 //获取Spinner控件的适配器
 6                 ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();
 7                 tvResult.setText(adapter.getItem(position));
 8             }
 9              //没有选中时的处理
10             public void onNothingSelected(AdapterView<?> parent) {
11             }
12         });

8.后台整体代码如下

 1     public void onCreate(Bundle savedInstanceState) {
 2         super.onCreate(savedInstanceState);
 3         setContentView(R.layout.main);
 4         List<String> list = new ArrayList<String>();
 5         list.add("苹果");
 6         list.add("香蕉");
 7         list.add("橘子");
 8         list.add("香蕉");
 9         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
10         adapter.setDropDownViewResource(android.R.layout.simple_list_item_single_choice);
11         Spinner sp = (Spinner) findViewById(R.id.spinner1);
12         sp.setAdapter(adapter);
13         sp.setOnItemSelectedListener(new OnItemSelectedListener() {
14             // parent: 为控件Spinner   view:显示文字的TextView   position:下拉选项的位置从0开始
15             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
16                 TextView tvResult = (TextView) findViewById(R.id.tvResult);
17                 //获取Spinner控件的适配器
18                 ArrayAdapter<String> adapter = (ArrayAdapter<String>) parent.getAdapter();
19                 tvResult.setText(adapter.getItem(position));
20             }
21              //没有选中时的处理
22             public void onNothingSelected(AdapterView<?> parent) {
23             }
24         });
25     }
时间: 2024-09-05 15:21:07

android:Spinner(下拉框)控件的使用的相关文章

android 开发-spinner下拉框控件的实现

Android提供实现下拉框功能的非常实用的控件Spinner. spinner控件需要向xml资源文件中添加spinner标签,如下: <Spinner android:id="@+id/spinner1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/textView

【转】Android官方下拉刷新控件 SwipeRefreshLayout

今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshLayout SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1. 提到下拉刷新大家一定对ActionBarPullToRefresh比较熟悉,而如今google推出了

DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项

场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102855898 在设置ComboBoxEdit的下拉框内容时除了最简单的 comboBox.Properties.Items.Add("下拉选项1"); 如果要添加键值对形式的数据该怎样实现. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi

Android 解决下拉刷新控件和ScrollVIew的滑动冲突问题。

最近项目要实现ScrollView中嵌套广告轮播图+RecyleView卡片布局,并且RecyleView按照header和内容的排列样式,因为RecyleView的可扩展性很强,所以我毫无疑问的选择了它,而且让RecyleView实现了可拖拽的效果, 最后我再加上了下拉刷新的效果(这里我用的下拉刷新控件是三方的SmartRefreshLayout).记得刚开始实现这个效果的时候还是十分的得心印手.可是当我测试的时候,发现RecyleView的子item的拖拽效果并不流畅,起初我以 为是由于Re

Android SwipeRefreshLayout下拉刷新控件源码简单分析

咱们在做Android APP开发的时候经常碰到有下拉刷新和上拉加载跟多的需求,这篇文章咱们先说说下来刷新,咱们就以google的原生的下拉刷新控件SwipeRefreshLayout来看看大概的实现过程. SwipeRefreshLayout是google自己推出的下拉刷新控件.使用起来也非常的简单,在满足条件的情况下下拉的时候会显示一个圆形的loading的动画效果,然后回调到上层,上层自己做刷新的一系列的处理,处理结束后调用SwipeRefreshLayout的setRefreshing(

android官方下拉刷新控件SwipeRefreshLayout的使用

可能开发安卓的人大多数都用过很多下拉刷新的开源组件,但是今天用了官方v4支持包的SwipeRefreshLayout觉得效果也蛮不错的,特拿出来分享. 简介:SwipeRefreshLayout组件只接受一个子组件:即需要刷新的那个组件.它使用一个侦听机制来通知拥有该组件的监听器有刷新事件发生,换句话说我们的Activity必须实现通知的接口.该Activity负责处理事件刷新和刷新相应的视图.一旦监听者接收到该事件,就决定了刷新过程中应处理的地方.如果要展示一个“刷新动画”,它必须调用setR

Dev控件的下拉框控件设置默认选中项

DevExpress中下拉框控件comboBoxEdit,用法和winform的不太一样,在绑完选项后,希望设置默认选中项. 有2种方法: 方法1this.cmbMacScan.EditValue = new CheckedListBoxItem { Value = model.ScanInterval, Description = model.ScanInterval.ToString() }; this.cmbMacScan.RefreshEditValue(); 方法2this.cmbMa

[原创]自己动手实现React-Native下拉框控件

因项目需要,自己动手实现了一个下拉框组件,最近得空将控件独立出来开源上传到了Github和npm. Github地址(求Star 求Star 求Star ??):https://github.com/sohobloo/react-native-modal-dropdown Github上全英文的readme方便国际友人,这里就写个中文的吧. react-native-modal-dropdown 一个react-native的下拉框组件,支持安卓和iOS. 特点 纯JS组件. 一份代码兼容iOS

封装下拉框控件!将查询到信息塞到下拉框中,将所选的内容截取并显示到静态框(联动显示)

1 int CSetOrgan::GetAllArea(CString& operArea) 2 { 3 CString strTemp; 4 for(int i=0; i<m_cmbDept.GetCount(); i++) 5 { 6 m_cmbDept.DeleteString(i); 7 } 8 this->PrepareReqPack(TX_QUERYORGAN); 9 AddField((getUIData().getUserId()), sorder0, F_SORDER