转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持!
前言
学习是自己的事情,学到了是自己的,了解更多的控件,让你在开发UI变得随心所欲,学习吧,少年~!
AutoComplateTextView(自动补全控件)
所需适配器:
ArrayAdapter(Adapter)
所需数据源:
String[] object(data)
注意:在配置View的时候要加上 (android:complatethreshold="1") 表示输入一个字符的时候就开始匹配,默认是输入全部
ListView
列表View
所需适配器:
SimpleAdapter
所需数据源:
SimpleAdapter
GridView
网格View
所需适配器:
SimpleAdapter
所需数据源:
SimpleAdapter
样式:
<!-- android:numColumns="3" 一行3列
android:horizontalSpacing="2dip" 水平间距
android:verticalSpacing="2dip" 垂直间距
-->
它们都需要的适配器:
ArrayAdapter 继承BaseAdapter 数据源为字符串数组
ArrayAdapter构造:
ArrayAdapter<String>(
context,------->上下文
resouce,-------->引用layout
textViewResouce,---->引用layout中的ID
object------>数据
);
SimpleAdapter 继承 BaseAdapter 数据源为集合对象.并且可以配置对象属性和item布局中的映射关系
SimpleAdapter构造:
SimpleAdapter(
context,------>上下文
data,---------->是一个List<Map<K,V>>集合,存放数据
resoouce,------>引用layout
from,------>数据从哪里来
to------>数据放到哪里去
);
自定义适配器
- private class MyAdapter extends BaseAdapter{
- private List<Person> persons;
- private LayoutInflater mInflater;
-
- public MyAdapter(List<Person> persons) {
- super();
- this.persons = persons;
- //得到布局加载器(加载xml布局文件到代码中)
- mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-
- mInflater = LayoutInflater.from(getApplicationContext());
-
- mInflater = getLayoutInflater();
- }
- //得到条目的总数
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return persons.size();
- }
- //得到指定条目的数据
- @Override
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return persons.get(position);
- }
- //得到条目的id
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- //创建一个item的布局(类似一个工厂)
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- //1 加载布局(系统给我们提供了一个服务LayoutInflater:布局加载器)
- View view = mInflater.inflate(R.layout.item, null);
-
- //控制布局的背景色
- if(position%2==0){
- view.setBackgroundColor(Color.GREEN);
- }else{
- view.setBackgroundColor(Color.RED);
- }
- //2 得到控件
- ImageView iv_icon = (ImageView) view.findViewById(R.id.lv_icon);
- TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
- TextView tv_number = (TextView) view.findViewById(R.id.tv_number);
- //3 得到数据
- Person person = persons.get(position);
- //4绑定数据给控件
-
- iv_icon.setImageResource(person.src);
- tv_name.setText(person.name);
- tv_number.setText(person.number);
- return view;
- }
-
- }
|