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指定?
第二个参数可以是:
- android.R.layout.simple_list_item_1 一行text
- android.R.layout.simple_list_item_2 一行title,一行text
- android.R.layout.simple_list_item_single_choice 单选按钮
- android.R.layout.simple_list_item_multiple_choice 多选按钮
- android.R.layout.simple_list_item_checked checkbox
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数组指定