Android-常用UI控件(Spinner/AutoCompleteTextView)
来源:互联网 发布:手机淘宝怎么买电影票 编辑:程序博客网 时间:2024/05/22 03:49
一、Spinner(下拉列表)
1、常用属性
android:entries=""//指定spinner要显示的字符串资源,必须是在strings或者attrs资源文件中定义的字符串资源android:spinnerMode="dialog" //spinner的模式,枚举值有两个值dialog和dropdown,默认就是dropdownandroid:prompt="@string/ "//当spinnerMode的值是dialog时有效,弹出的对话框式的下列列表的提示(类似标题)//此处的值不能直接使用直接字符串,必须使用引用(字符串资源)android:popupBackground="#00A2E8"//设置下拉菜单列表的背景android:dropDownWidth="100dp"//设置下拉菜单列表的宽度//最后两个属性在spinnerMode为dropdown时候有效
spinnerMode为dropdown和dialog时的效果:
2、结合适配器ArrayAdapter/SimpleAdapter使用
ArrayAdapter:数组类型适配器
作用:将指定的数据源显示到item选项布局中
默认情况下,这类要求提供一个资源ID来引用一个单独TextView,也就是说数据源的每一项必须放在布局文件中的TextView业显示,无论如何,这个TextView是要被引用的
ArrayAdapter提供了三个构造方法:
带四个参数的构造方法(常用)
ArrayAdapter(context, resource, textViewResourceId, objects)
参数一:上下文对象
参数二:绑定的布局文件(自定义或者系统提供)
参数三:布局文件中对应的TextView的id
参数四:数据源,List集合或数组都可以。带三个参数的构造方法(不常用)
ArrayAdapter(context, resource, textViewResourceId, objects)
参数一:上下文对象
参数二:布局文件的id,该布局文件中只能有一个TextView标签
参数三:参数二布局文件中要显示数据的TextView的id
参数四:原始数据,List集合或数组都可以。带两个参数的构造方法(不常用)
ArrayAdapter(context, resource)
参数一:上下文对象
参数二:布局文件(一定要有一个TextView)
sp = (Spinner) findViewById(R.id.sp3); sp4 = (Spinner) findViewById(R.id.sp33); //ArrayAdapter String[] city = { "深圳", "上海", "北京", "广州" };// ArrayAdapter<String> cityArr = new ArrayAdapter<String>(this,// R.layout.spinner);// ArrayAdapter<String> cityArr = new ArrayAdapter<String>(this,// android.R.layout.simple_spinner_dropdown_item); // cityArr.addAll(city);// ArrayAdapter<String> cityArr = new ArrayAdapter<String>(this,// R.layout.spinner, city); ArrayAdapter<String> cityArr = new ArrayAdapter<String> (this, //上下文对象 R.layout.spinner2,//布局文件 R.id.tvspinner2,//布局文件对应的控件id city//数据源 ) {}; sp.setAdapter(cityArr); // simpleadapter data = new ArrayList<Map<String, Object>>(); Map<String, Object> map1 = new HashMap<String, Object>(); map1.put("value", "深圳"); map1.put("icon", R.drawable.pic1); data.add(map1); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("value", "北京"); map2.put("icon", R.drawable.pic2); data.add(map2); Map<String, Object> map3 = new HashMap<String, Object>(); map3.put("value", "上海"); map3.put("icon", R.drawable.pic3); data.add(map3); Map<String, Object> map4 = new HashMap<String, Object>(); map4.put("value", "广州"); map4.put("icon", R.drawable.pic4); data.add(map4); Map<String, Object> map5 = new HashMap<String, Object>(); map5.put("value", "杭州"); map5.put("icon", R.drawable.pic5); data.add(map5); Map<String, Object> map6 = new HashMap<String, Object>(); map6.put("value", "福州"); map6.put("icon", R.drawable.pic6); data.add(map6); sl = new SimpleAdapter(this,//上下文对象 data,//数据源 R.layout.spinner3,//布局文件 new String[] { "icon", "value" },//绑定的值 new int[] { R.id.ivicon3,R.id.tvspinner3 //布局文件对应的控件id }); sp4.setAdapter(sl);
ArrayAdapter和SimpleAdapter的区别是 ArrayAdapter 只能传入一种数据类型,SimpleAdapter可以传入一组不同类型的数据。
//TODO 查看ArrayAdapter和SimpleAdapter源码
二、AutoCompleteTextView/MultiAutoCompleteTextView
MultiAutoCompleteTextView继承自AutoCompleteTextView
AutoCompleteTextView继承自EditText
1、常用属性:
android:completionThreshold="数字" //当输入几个字符后开始提示android:completionHint="请选择你的姓名" //根据你的输入弹出数据让你选择的时候的提示语。textCursorDrawable="@null" //设置光标颜色与文本颜色一致dropDownWidth //下拉菜单的宽度
2、使用方法
String[] str = { "shenzheng", "beijing", "shanghai", "guangzhou","fujian", "hangzhou", "nanjing", "hubei" }; AutoCompleteTextView act = (AutoCompleteTextView) findViewById(R.id.act1); MultiAutoCompleteTextView act2 = (MultiAutoCompleteTextView) findViewById(R.id.act2); '//使用MultiAutoCompleteTextView必须实现MultiAutoCompleteTextView.Tokenizer接口, //可以使用Android提供的实现类MultiAutoCompleteTextView.CommaTokenizer, //用于声明用于选项与选项之间分隔的符号,一般如不特殊指定,设定使用英文逗号","进行分隔选项 act2.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); //适配器绑定数据源 ArrayAdapter<String> ap = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, str); //添加适配器到要监听的控件 act.setAdapter(ap); act2.setAdapter(ap); //监听内容更改. act.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { Log.i("listener", "改变中s="+s+",start="+start+",before="+before+",count="+count); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { Log.i("listener", "改变前s="+s+",start="+start+",count"+count); } @Override public void afterTextChanged(Editable s) { Log.i("listener", "改变后s="+s); } });
- Android-常用UI控件(Spinner/AutoCompleteTextView)
- Android常用控件之AutoCompleteTextView、Spinner
- Android UI控件--Spinner
- Android常用控件-AutoCompleteTextView
- Android常用控件-spinner
- Android常用控件-spinner
- android常用控件三 AutoCompleteTextView
- Android常用UI之Spinner
- Android 控件:AutoCompleteTextView,MultiAutoCompleteTextView ,TimePicker ,DatePicker,Spinner 的简单使用
- Android高级控件之AutoCompleteTextView,MultiAutopleteTextView,Spinner,ListView,ExpandableListView
- Android基础UI控件之AutoCompleteTextView
- Android UI控件Spinner控件的学习
- Android UI控件之Spinner(下拉列表)
- Android UI控件详解-Spinner(下拉列表)
- Android UI设计——Spinner控件
- Android UI控件-Spinner(下拉列表)
- UI控件--AutoCompleteTextView
- android 常用控件 (AutoCompleteTextView) (MultiAutoCompleteTextView)
- Majority Element
- Windows 消息机制浅析
- 最快的了解安卓中常用的设计模式
- Leetcode 157,158, Read N Characters Given Read4
- golang 远程连接mssql 2000
- Android-常用UI控件(Spinner/AutoCompleteTextView)
- Openstack组建部署 — Environment of Controller Node
- centOS升级python2.6至2.7
- Linux 下挂载硬盘方法
- Contains Duplicate
- 【树莓派2B折腾日志】无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)
- Java练习:条件表达式语句
- Intersection of Two Arrays II
- ACtion的多例和单例(网站看到的。自己遇到的)