(Spinner) android中Spinner的使用

Spinner这个组件配置之后需要进行内容的设置,而内容可以使用配置文件完成,也可以通过ArrayAdapter类进行封装操作完成

单机选项public void ( l)

选项改变 public void ( l)

长按事件 public void ( l)

主要使用到事件就在于事件的变更

下面是城市的选择列表

1.在values文件夹中创建一个city_data.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="city_labels">
<item>中国-上海</item>
<item>中国-北京</item>
<item>中国-广州</item>
<item>中国-海南</item>
</string-array>
</resources>

2.在String.xml文件中定义String属性

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">Spinner3</string>
<string name="city_app">下拉列表框选项</string>
<string name="city_prompt">选择你喜欢的城市</string>
</resources>

3.在layout的Main.xml配置文件中 添加相应的控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- 接收下拉列表的选项 -->
<TextView
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/city_prompt" />
<!-- android:text="@string/city_prompt" 提示信息 -->
<!-- android:entries="@array/city_labels"下拉列表的内容 -->
<Spinner
android:id="@+id/city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/city_labels"
android:text="@string/city_prompt" />
</LinearLayout>

4.在Activity中完成相应事件处理的操作

package com.qn.spinner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Spinner city;// 下拉列表框的内容
private TextView info;// 事件发生后取得下拉列表框的内容
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
city = (Spinner) findViewById(R.id.city);// 取得下拉列表框
info = (TextView) findViewById(R.id.info);// 取得文本显示控件
city.setOnItemSelectedListener(new OnItemSelectedListenerImpl());
}
private class OnItemSelectedListenerImpl implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {// 选项改变的时候触发
String value = (String) parent.getItemAtPosition(position);// 得到选中的选项
info.setText("你喜欢的城市" + value);// 选项的内容在TextView中显示
}
public void onNothingSelected(AdapterView<?> arg0) {// 没有选项的时候触发
// 一般不关心
}
}
}

结果

下面是级联菜单

1.在values文件夹中创建一个city_data.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="city_labels">
<item>中国-上海</item>
<item>中国-北京</item>
<item>中国-广州</item>
<item>中国-海南</item>
</string-array>
</resources>

2.在String.xml文件中定义String属性

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">Spinner3</string>
<string name="city_app">下拉列表框选项</string>
<string name="city_prompt">选择你喜欢的城市</string>
<string name="area_prompt">选择你喜欢的城区</string>
</resources>

3.在layout的Main.xml配置文件中 添加相应的控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<!-- android:text="@string/city_prompt" 提示信息 -->
<!-- android:entries="@array/city_labels"下拉列表的内容 -->
<!-- 一级栏目 -->
<Spinner
android:id="@+id/city"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/city_labels"
android:text="@string/city_prompt" />
<!-- 二级栏目 -->
<Spinner
android:id="@+id/area"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/area_prompt"
/>
</LinearLayout>

4.在Activity中完成相应事件处理的操作

二级栏目中定义了数组进行填入数据,

用数组填入数据必须,用ArrayAdapter

所以要准备ArrayAdapter

private ArrayAdapter<CharSequence> adapterArea;基本都用CharSequence 应为我们还是要标准化 以借口作为我们的标准,能使接口就不适应类(String)

adapterArea=new ArrayAdapter<CharSequence>()

使用这个构造方法,因为可以直接接受数组

publicArrayAdapter( context, int resource, int textViewResourceId, T[] objects)
package com.qn.spinner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Spinner city;// 一级菜单
private Spinner area;//二级菜单
private String[][] areaData=new String [][]{
{"东城","西城","朝阳","大兴"}//针对一级子信息
,{"黄普","东方名族","杨浦","大兴"}//针对二级子信息
,{"广东"}};//针对三级子信息
private ArrayAdapter<CharSequence> adapterArea;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
city = (Spinner) findViewById(R.id.city);// 取得下拉列表框
//由于一个城市有多个市区,为了简单起见下面我们定义一个数组,通过数组保存若干个城市,而实际中需要单独的数据
area = (Spinner) findViewById(R.id.area);// 取得下拉列表框
city.setOnItemSelectedListener(new OnItemSelectedListenerImpl());
}
private class OnItemSelectedListenerImpl implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {// 选项改变的时候触发
adapterArea=new ArrayAdapter<CharSequence>(
MainActivity.this,
android.R.layout.simple_spinner_item,//显示风格
areaData[position]);//在列表视图中所代表的对象。
area.setAdapter(adapterArea);//把adapterArea添加到area
}
public void onNothingSelected(AdapterView<?> arg0) {// 没有选项的时候触发
// 一般不关心
}
}
}

结果

(Spinner) android中Spinner的使用相关推荐

  1. Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)

    Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)

  2. Android 中 Spinner下拉框使用

    文章目录 先用起来 方法和属性 样式 增加分割线 选中和下拉样式 弹出框样式 使用自定义的BaseAdapter 先用起来 效果图 布局页面 activity_test <?xml versio ...

  3. android arrayadapter自定义,Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)...

    1 :Android中Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现) . 今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Sp ...

  4. Android中Spinner的使用

    本博文介绍了基本的Spinner的使用方法 首先写一下xml中的代码部分 <Spinner android:id="@+id/myspinner"android:layout ...

  5. 【Android】 Android中spinner下拉列表的使用

    今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现) (一):使用ArrayAda ...

  6. android spinner自定义样式,android自定义Spinner下拉菜单(下拉列表框)样式

    在Android中Spinner就是下拉菜单,它相当于HTML中的标签. Android中提供的Spinner Widget下拉菜单已经非常好用了,样式也适用, 不过我们还是可以通过定义xml的方式来 ...

  7. android自定义下拉筛选,android自定义Spinner下拉菜单(下拉列表框)样式

    在Android中Spinner就是下拉菜单,它相当于HTML中的标签. Android中提供的Spinner Widget下拉菜单已经非常好用了,样式也适用, 不过我们还是可以通过定义xml的方式来 ...

  8. Android中自定义xml文件给Spinner下拉框赋值并获取下拉选中的值

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  9. android改变下拉框字体颜色,有没有简单的方法来改变Android中的Spinner下拉颜色?...

    我创建我的主题以与应用程序一起使用,主题的父级是Theme.AppCompat.Light.NoActionBar 顺便说一句,我想要白色背景和黑色文字. 这是适配器代码 val adapter = ...

最新文章

  1. 人形图案c语言程序_做游戏,学编程(C语言) 7 学习EasyX图形交互功能----flappy bird源代码...
  2. python现在好找工作吗-学完Python好找工作吗?为什么有人学完找不到工作?
  3. BFS和DFS优先搜索算法
  4. 链表的各种操作实现 链表逆序 链表排序 有序链表归并 链表存在环的判定
  5. 2. Leetcode 167. 两数之和 II - 输入有序数组 (数组-双向双指针)
  6. 【大话Hibernate】hibernate事务管理
  7. Google再次从官方商店下架伪装成合法程序的恶意应用
  8. python3 线程池监控线程是否停止工作_Python线程池——个人总结,如果你不喜欢就不要喷,勿...
  9. 【WinForm】线程中向listview添加数据
  10. 宴席终将散场!苹果首席设计师将离职创业 已供职于苹果近30年
  11. 在集设浏览学习高水准海报设计,会带给你不一样的灵感!
  12. 微服务升级_SpringCloud Alibaba工作笔记0011---Gateway常用的predicate
  13. 深入理解 switch....case 中的case
  14. 使用原生js得到页面相关的正确参数
  15. Excel 制作甘特图(多图)
  16. 手把手带你用idea搭建Java源码(JDK源码)阅读调试环境
  17. 杭电多校第八场05_Separated Number(组合数前缀和性质)
  18. 计算机科学顶尖期刊,重磅!中国各学科顶级期刊名单发布!(影响力指数排名)...
  19. 关于我如何拿到携程offer的过程记录
  20. dup java_关于JVM字节码中dup指令的问题?

热门文章

  1. 音视频技术开发周刊 | 144
  2. LiveVideoStack线上分享第三季(十一):Xilinx视频解决方案
  3. AV1:下一代视频标准—约束定向增强滤波器
  4. 腾讯物联网操作系统正式开源,最小体积仅1.8 KB
  5. 如何用keras实现deepFM
  6. go语言IP转换uint32,uint32转换IP
  7. 数据库设计原则:应该使用软删除吗?
  8. 【Java】利用容器存储表格数据
  9. 计算机网络基础期中测试题,计算机网络基础期末考试试题
  10. html不可选择的按钮,HTML功能无法使用按钮