【基础篇】Android下拉列表框(Spinner)的基本使用
个人学习经验:第一步:新建工程,在main.xml中,main.xml内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Spinner
android:id="@+id/LineNumId"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
第二步:新建一个item.xml文件,用于对下拉列表框下拉内容进行布局,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textViewId"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
第三步:在MainActivity中进行具体代码编写,内容如下:
public class MainActivity extends Activity {
//声明Spinner对象
private Spinner spinner =null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 动态创建ArrayAdapter
*/
List<String> list = new ArrayList<String>();
list.add("test1");
list.add("test2");
//参数(上下文对象,布局文件,指定textView的id,为整个列表提供数据)
ArrayAdapter adapter = new ArrayAdapter(this,R.layout.item,R.id.textViewId,list);
//根据id找到Spinner对象
spinner = (Spinner)findViewById(R.id.spinnerld);
//将生成好的adapter设置到spinner中
spinner.setAdapter(adapter);
//设置菜单标题
spinner.setPrompt("测试");
//绑定监听器
spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
}
/**
* 这个监听器主要用来监听用户选择列表的动作
*/
class SpinnerOnSelectedListener implements OnItemSelectedListener{
//用户选定了一个选项时,会调用该方法
//第一个参数表示整个列表,第二个蚕食表示当前被选中的选项,第三个参数是选中的位置,第四个参数是选中的id
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,
long id) {
String selected = adapterView.getItemAtPosition(position).toString();
System.out.println("This Checked----->"+selected);
}
//用户为选定状态下触发该方法
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
System.out.println("nothingSelected");
}
}
}
2.静态创建的方法,首先在String.xml中定义一个数组,String.xml内容如下:
<?xml version="1.0" encoding="utf-8"?> <resources>
<string name="app_name">下拉列表测试</string>
<string name="action_settings">Settings</string>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
然后重写MainActivity中的代码,信息如下:
public class MainActivity extends Activity {
//声明Spinner对象
private Spinner spinner =null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 静态创建ArrayAdapter
*/
//通过createFromResource方法创建ArrayAdapter对象
//第一个参数是上下文对象
//第二个参数引用了在string.xml文件当中定义的String数组
//第三个参数是用来指定Spinner的样式,是一个布局文件ID,该布局文件由Android系统提供,也可替换为自己定义的布局文件
ArrayAdapter<CharSequence> adapter =
ArrayAdapter.createFromResource(
this, R.array.planets_array,android.R.layout.simple_spinner_item);
//设置Spinner当中的每一个条目的样式,同样是引用一个Android系统提供的布局文件
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
//根据id找到Spinner对象
spinner = (Spinner)findViewById(R.id.spinnerld);
//将生成好的adapter设置到spinner中
spinner.setAdapter(adapter);
//设置菜单标题
spinner.setPrompt("测试");
//绑定监听器
spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());
}
/**
* 这个监听器主要用来监听用户选择列表的动作
*/
class SpinnerOnSelectedListener implements OnItemSelectedListener{
//用户选定了一个选项时,会调用该方法
//第一个参数表示整个列表,第二个蚕食表示当前被选中的选项,第三个参数是选中的位置,第四个参数是选中的id
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position,
long id) {
String selected = adapterView.getItemAtPosition(position).toString();
System.out.println("This Checked----->"+selected);
}
//用户为选定状态下触发该方法
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
System.out.println("nothingSelected");
}
}
}
好了,这样一个简单的下拉列表就创建成功了,希望各位看官细心观察下动态创建和静态创建两种方法的区别。
【基础篇】Android下拉列表框(Spinner)的基本使用的更多相关文章
- ESA2GJK1DH1K基础篇: Android实现MQTT封装源码使用说明
说明 这一节说明一下基础篇APP源码里面MyMqttCilent.java这个文件的使用 新建工程 安装MQTT的jar包 implementation 'org.eclipse.paho:org.e ...
- [Android 性能优化系列]内存之基础篇--Android怎样管理内存
大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地 ...
- 4.Android下拉列表框spinner学习
下拉列表框被广泛使用,诸如淘宝.京东等手机端经常可以看到这个部件身影,今天就来学习下它. 首先布局文件增加代码:如图 接下来在values下增加arrays.xml 如图 ...
- ESA2GJK1DH1K基础篇: Android实现SmartConfig简单Demo
下载源码去 百度安信可 导入源码 等待加载完 我的提示更新下软件 ,我就更新下 安装完成以后重新导入工程 安装到手机 注意,由于Android 9.0 以后的获取WIFI名称需要打开GPS,所以如果提 ...
- ESA2GJK1DH1K基础篇: Android连接MQTT简单的Demo
题外话 我老爸也问我物联网发展的趋势是什么!!!!!! 我自己感觉的:(正在朝着 "我,机器人" 这部电影的服务器方向发展) 以后的设备都会和服务器交互,就是说本地不再做处理,全部 ...
- Android Fragment使用(一) 基础篇 温故知新
Fragment使用的基本知识点总结, 包括Fragment的添加, 参数传递和通信, 生命周期和各种操作. Fragment使用基础 Fragment添加 方法一: 布局里的标签 标识符: tag, ...
- 深入理解gradle编译-Android基础篇
深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...
- ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView
原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...
- ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map
原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...
随机推荐
- PostgreSQL Replication之第三章 理解即时恢复(4)
3.4 重放事务日志 一旦我们创建了一个我们自己的初始基础备份,我们可以收集数据库创建的XLOG.当时间到时,我们可以使用所有这些XLOG 文件并执行我们所期望的恢复进程.这就像本节描述的一样工作. ...
- js中字符串下划线转为驼峰
function camelCase(string){ // Support: IE9-11+ return string.replace( /-([a-z])/g, function( all, l ...
- caffe(14) python可视化
首先将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示. 图片大小为360x480,三通道 In [1]: import numpy as np import matplo ...
- windows上 python有多版本,如何管理,如何区别?
win10环境下: 1. where python 查看安装了哪些版本. 2.更改对应python.exe 文件的名称就能更改调用python的名称了. 3.不同python是两个完全独立的软件(独立 ...
- WPF获得PNG图片外观Path数据
原文:WPF获得PNG图片外观Path数据 WPF开发界面的时候,用的最多的就是自定义控件模板,开发人员需要根据UI的设计,做出符合要求的自定义控件.但是在一些特殊情况下,UI的设计可能 ...
- unity 自动删除未引用的Assets下的资源
随着时间的堆积,项目中Assets文件夹下的资源会变得越来越繁杂,有些贴图.材质啥的可能压根没有使用过,但是又不敢轻易去删除. 这里分享两个插件,用于管理这些资源. 一.ResourceChecker ...
- asp.net.core网站重启后登陆无效问题(部署在IIS)
一.问题 在使用asp.net.core时,把网站发布到IIS后,在后续更新中需要停止网站,然后重启网站,发现已经登陆的用户会退出登陆.过程如下 1.登陆代码(测试) [AllowAnonymous] ...
- 08-for循环
- iOS App 上架流程
iPhone App 上架流程 1. 申请 App ID (1) 连到 Devel ...
- vim 脚本之快速打印log
" zsl_log.vim " Version: 1.0 if exists("g:zsl_loaded_log") || &cp || v:versi ...