Android 学习笔记9:高级控件

AutoCompleteTextView

AutoCompleteTextView继承自EditText,和EditText类似在输入字符后会有下拉菜单,供用户选择。

android:completionHint 设置出现在下拉菜单的提示标题

android:completionThreshold 设置输入几个字符后有提示

android:dropDownHeight 设置下拉菜单高度

android:dropDownWidth 设置下拉菜单宽度

android;dropDownHorizentalOffset 设置与文本框的水平偏移,默认左对齐

android:dropDownVerticalOffset 同上,默认紧靠文本框

android:popupBackground 下拉菜单背景

除此之外还要为下拉菜单提供数据,给用户选择。通过一个Adapter封装预设的数据,通过setAdapter(Adapter)设置数据

Spinner

Spinner是ViewGroup的间接子类,弹出菜单供用户选择

android:prompt  设置列表选择框的提示

android:entries 使用数组资源设置菜单的列表框选项 

ListView

以垂直的方式显示列表项,创建方式

让activity继承listActivity

直接使用ListView创建

属性

android:choiceMode 设置ListView的选择行为

android:divider 设置List列表项的分隔条,如果通过颜色设置,要设置dividerHeight非0可以通过Drawable中的xml设置

android:dividerHeight 设置分隔条高度

android:entries  同spinner

android:footerDividersEnabled 
android:headerDividersEnabled 不懂

GridView

android:columnWidth 设置列的宽度

android:gravity 设置每一个cell 的对齐方式

android:horizontalSpacing 设置每一个cell的水平间距

android:verticalSpacing 设置每行间的垂直间距

android:numColumn 设置列数,如果是auto_fit(-1)的话,就是尽可能多的列

android:strechMode 设置列的拉伸模式,如果每一列有剩余空间的话

Adapter

上面的空间的每一项都可以指定一个xml的布局,而xml的控件中的数据,可以由Adapter传递。

学习资料


常用的Adapter有:  

BaseAdapter是一个抽象类,继承它需要实现较多的方法,所以也就具有较高的灵活性;

ArrayAdapter支持泛型操作,最为简单,只能展示一行字 

SimpleAdapter有最好的扩充性,可以自定义出各种效果。

SimpleCursorAdapter可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为

SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。

BaseAdapter

ArrayAdapter

六个构造函数 

ArrayAdapter(Context context, int resource )

ArrayAdapter(Context context, int resource, int textViewResourceId) 

ArrayAdapter(Context context, int resource, T[] objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

ArrayAdapter(Context context, int resource, List<T> objects)

ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
context:当前的context,一般是this。

resource:布局文件id。如果后面没有多一个参数指定,TextView的id,布局文件要包含TextView

textViewResourceId:TextView的id,用来展示数据。

objects:数据的来源可以是数组或者List。

前面两个构造函数没有指定数据来源,难道是在xml中用entiers指定?

第二个参数可以是: 

SimpleAdapter

构造函数 

SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

context  同上

data        一个存储map的list,一个map对应一行,map的键值对中value是用来展示的,key是后面from指明的所有项目。

resource 布局文件id,指定一个listitem的布局

from        一个map中所有的key构成的数组

to            data中key对应的value应该展示在什么控件上,通过这个id数组指定


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值