AutoCompleteTextView 自动完成文本框
EditText的子类,是一个输入框
自动完成功能,从数据源中匹配,找到后,自动提示
必须使用适配器,一般使用ArrayAdapter,把数据源和视图连接起来
在Activity_main中
自己的布局
//数据源
String[] names = { "zhangsan", "lisi", "wangwu", "zhaoliu", "tianqi",
"wangba", "laojiu" };
//适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.autoadaptor, R.id.tv1, names);
//R.layout.autoadaptor : 数据源要使用的布局
//R.id.tv1 : 添加到布局的哪个组件
//最后
AutoCompleteTextView ta;
ta = findViewById(R.id.actv);
ta.setAdapter(adapter);
系统的布局
//适配器不同
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, names);
//数据源如果是数组,也可以是list,类型如果是对象,对象要实现toString方法
public String toString() {
return name+"::"+age;
}
MultiAutoCompleteTextView 多行自动完成文本框
和AutoCompleteTextView相同,只不过多了一个分隔符,这个分隔符必须实现
//如果需要实现不同的符号,直接copy CommaTokenizer的源代码,修改字符
ta.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
Spinner 下拉列表
数据源来源
1.可以在xml给一个数据源(xml中的字符串数组(自定义数组、系统数组@android:array/))
2.给一个适配器,也是使用ArrayAdapter
entries :设置数据源
spinner.setSelection(2,true);//选中默认值
//在MainActivity中,设置监听
ta.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView
ListView 列表视图
支持数据源
divider : 分隔符
dividerHeight : 分隔符高度
listSelector : 被选中的条目变色,(如果需要按下变色,需要修改item布局的根布局属性)
tools:listitem : 显示 默认的匹配布局
scrollbars : 右边的滚动条
渐变
<shape>
<gradient
android:centerColor="#00f"
android:endColor="#fff"
android:startColor="#0ff" />
</shape>