一个适配器公用,多个布局文件同用一个适配器
来源:互联网 发布:如何ping mac地址 编辑:程序博客网 时间:2024/06/05 18:32
先定义布局的数量,布局的类型,布局的标记
private int level = 0;//选择哪种类型的布局文件的标记private final int TYPE_1 = 0; //布局类型一private final int TYPE_2 = 1; //布局类型二private final int TYPE_3 = 2; //布局类型三private final int VIEW_TYPE = 3; //总布局数
然后,重写baseAdapter的方法
@Overridepublic int getViewTypeCount() {return VIEW_TYPE;}@Overridepublic int getItemViewType(int position) {if(0 == position) return TYPE_1;else if(1 == position)return TYPE_2;else if(2 == position)return TYPE_3;else return TYPE_1;}
最后,在getView()方法中根据level来选择你当前的布局类型
public View getView(int position, View view, ViewGroup arg2) {ViewHolder viewHolder = null;DataItem mContent = list.get(position);int type = getItemViewType(level);if (view == null) {viewHolder = new ViewHolder();switch (type) {case TYPE_1:view = LayoutInflater.from(mContext).inflate(R.layout.personal_contact_list_item, null);initView(view,viewHolder,0);break;case TYPE_2:view = LayoutInflater.from(mContext).inflate(R.layout.teacher_contact_list_item, null);initView(view,viewHolder,1);break;case TYPE_3:view = LayoutInflater.from(mContext).inflate(R.layout.public_contact_list_item, null);initView(view,viewHolder,2);break;default:break;}view.setTag(viewHolder);} else {viewHolder = (ViewHolder) view.getTag();}//根据position获取分类的首字母的Char ascii值int section = getSectionForPosition(position);//如果当前位置等于该分类首字母的Char的位置 ,则认为是第一次出现if(position == getPositionForSection(section)){viewHolder.tvLetter.setVisibility(View.VISIBLE);viewHolder.tvLetter.setText(mContent.getSortLetters());}else{viewHolder.tvLetter.setVisibility(View.GONE);}switch (type) {case TYPE_1:initData(viewHolder,mContent,0,position);break;case TYPE_2:initData(viewHolder,mContent,1,position);break; case TYPE_3:initData(viewHolder,mContent,2,position);break;};return view;}
0 0
- 一个适配器公用,多个布局文件同用一个适配器
- ListView_适配器之万能适配器_实现多个ListView公用同一个适配器
- 多个Activity同用一个布局或控件
- 自定义一个适配器
- 只使用一个适配器
- RecyclerView多布局适配器
- 一个ListView使用多个布局文件
- 适配器中需要多个项目布局的问题
- 自定义一个基本数组适配器
- 一个简单的viewpager适配器
- android 一个公共的适配器,简化适配器代码
- 适配器模式(二)-----简单的实现一个适配器模式
- 多个cloudstack环境公用一个NFS服务器
- 实验-多个视图同用一个文档类
- 一个数据线程间同步的适配器
- 一个反向适配器的的例子
- 一个简单的适配器模式例子
- 一天一个设计模式(4):适配器模式
- Android 5.0 Design 沉浸式状态栏
- Professor Q's Software Java版本
- showModalDialog简单案例及使用
- 欢迎使用CSDN-markdown编辑器
- wamp下 403 Forbidden问题轻松解决
- 一个适配器公用,多个布局文件同用一个适配器
- 最小二乘法建模
- Linux 常用命令
- 日经春秋 20150423
- linux下 c语言多文件编译
- 黑马程序员————OC面向对象_类和对象(下)
- Selenium+Eclipse+Python测试环境搭建
- Set容器
- Eclipse工具使用技巧总结---太给力了