ListView和Adapter(适配器)

来源:互联网 发布:建筑图酷软件 编辑:程序博客网 时间:2024/05/16 02:37

显示多条数据Adapter MVC模型
ListView控件,控件中不存在布局,整体不允许使用ClickListener,可使用ItemClickListener,position是指第几项Item。

1、 ArrayAdapter 只能放一个文本
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,array);
mListView1.setAdapter(adapter);

2、SimpleAdapter
SimpleAdapter adapter=new SimpleAdapter(this,mData,R.layout.layout_simpleadapter,
new String[]{“name”,”age”,”hobby”},new int[]{R.id.textview_name,R.id.textview_age,R.id.textview_hobby});
mListView1.setAdapter(adapter);

3、BaseAdapter ListAdapter的自定义Adapter
创建数据类例如student,创建Adapter继承BaseAdapter,实现其4个方法,将activity中的LayoutInflater和数据传入Adapter,例(LayoutInflater inflater=getLayoutInflater();
StudentAdapter adapter=new StudentAdapter(inflater,mData);)注意先初始化数据再创建adapter

对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;LayoutInflater 是一个抽象类,LayoutInflater inflater = getLayoutInflater();

自定义控件继承BaseAdapter,getView方法
1.convertView 当View滚出屏时,convertView不等于null,当向上滚动时,上部滚出屏的convertView自动加载都最下面等待被使用,反之亦然
2.ViewHolder(),将子控件加载到convertView,注意使用convertView.setTag(vh)和vh=()convertView.getTag();
3.当出现滚动变黑时,在ListView控件中,cacheColorHint=#00000000透明色
4.分割线,在ListView控件中,divider=颜色,dividerHeight=20dp宽度
5.ListView中Item点击事件底色,在布局文件中,background=@…
6.在ListView中加头部和底部,先写布局,然后用inflater加载布局,注意构造方法null,然后ListView对象.setHeader…或setFooter…,注意加header后,使用setItemOnClickListener时,header为第0行,使用position时注意-1
7.当一个父组件中包含checkbox或者Button类按钮时,此按钮将’吃掉’点击事件,可在其组件中设置focusable=false,此时,有点击事件只要不点其自身则交给父组件处理
8.notifiyDataSetChanged();刷新界面,重新调用getView();
9.在listView中使用checkbox时,注意checkbox的重复乱选。
10.拓展练习,点击整个Item选中checkbox,全选,反选,将方法加到adapter中。

0 0
原创粉丝点击