android listview多种布局 getViewTypeCount和getItemViewType
来源:互联网 发布:掷茭杯的算法 编辑:程序博客网 时间:2024/06/08 05:27
一般listview都是一种样式,但如果出现 多种样式 ,类似于这一条item是 文字 下一条是图片 在下一条是文字加图片,也许你会说 那就在那就在一个xml文件里面写三者样式呗。那如果是 一百个呢。。哇。。这维护起来 可是个大工程,我可不想加班。
先上图片看看样子:两种样式 只为了为了说明问题
那么方法来了,使用getViewTypeCount和getItemViewType
getViewTypeCount 方法返回的是 你有几种样式 返回时是 int类型
getItemViewType 返回值 是你某一种样式 的类型 是什么。。返回值也是 int类型 ,意思是 代表 A类型的 是 数字 1.。。就是这意思
两个方法很简单呢 直接上代码,基本没什么特别的,就是加了两个方法而已
- package com.org.mmp.Play;
- import java.util.List;
- import com.org.mmp.R;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- public class PlayAdapter extends BaseAdapter {
- /**
- * 标题的item
- */
- public static final int ITEM_TITLE = 0;
- /**
- * 二级菜单的item
- */
- public static final int ITEM_INTRODUCE = 1;
- private List<ViewItem> mList;
- private Context context;
- private LayoutInflater inflater;
- // 两个样式 两个holder。100就写100holder。。当然你何以把他抽离出来这里先只为了说明问题
- class Holder1 {
- TextView play_title;
- Holder1(View view) {
- play_title = (TextView) view.findViewById(R.id.play_title);
- }
- }
- class Holder2 {
- TextView play_introduce_title;
- ImageView play_iv;
- Holder2(View view) {
- play_introduce_title = (TextView) view
- .findViewById(R.id.play_introduce_title);
- play_iv = (ImageView) view.findViewById(R.id.play_iv);
- }
- }
- public PlayAdapter(Context context, List<ViewItem> mList) {
- this.context = context;
- this.mList = mList;
- inflater = LayoutInflater.from(context);
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- System.out.println("mList.size()" + mList.size());
- return mList.size();
- }
- @Override
- public Object getItem(int arg0) {
- // TODO Auto-generated method stub
- return mList.get(arg0);
- }
- //返回 代表某一个样式 的 数值
- @Override
- public int getItemViewType(int position) {
- // TODO Auto-generated method stub
- return mList.get(position).type;
- }
- //两个样式 返回2
- @Override
- public int getViewTypeCount() {
- // TODO Auto-generated method stub
- return 2;
- }
- @Override
- public long getItemId(int arg0) {
- // TODO Auto-generated method stub
- return arg0;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- int type = getItemViewType(position);
- Holder1 holder1 = null;
- Holder2 holder2 = null;
- System.out.println("getView " + position + " " + convertView
- + " type = " + type);
- if (convertView == null) {
- //选择某一个样式。。
- switch (type) {
- case ITEM_TITLE:
- convertView = inflater.inflate(R.layout.play_item_title, null);
- holder1 = new Holder1(convertView);
- holder1.play_title.setText(mList.get(position).name);
- convertView.setTag(holder1);
- break;
- case ITEM_INTRODUCE:
- convertView = inflater.inflate(R.layout.paly_item_introduce,
- null);
- holder2 = new Holder2(convertView);
- holder2.play_introduce_title
- .setText(mList.get(position).address);
- convertView.setTag(holder2);
- break;
- default:
- break;
- }
- } else {
- switch (type) {
- case ITEM_TITLE:
- holder1 = (Holder1) convertView.getTag();
- holder1.play_title.setText(mList.get(position).name);
- break;
- case ITEM_INTRODUCE:
- holder2 = (Holder2) convertView.getTag();
- holder2.play_introduce_title
- .setText(mList.get(position).address);
- break;
- default:
- break;
- }
- }
- return convertView;
- }
- }
点击打开链接
0 0
- android listview多种布局 getViewTypeCount和getItemViewType
- android listview多种布局 getViewTypeCount和getItemViewType
- android listview多种布局 getViewTypeCount和getItemViewType
- android listview多种布局 getViewTypeCount和getItemViewType
- Android ListView Adapter的getItemViewType和getViewTypeCount多种布局
- Android ListView Adapter的getItemViewType和getViewTypeCount多种布局
- (转)Android ListView多种布局 getViewTypeCount和getItemViewType
- Android ListView Adapter的getItemViewType和getViewTypeCount多种布局
- Android之ListView的getItemViewType和getViewTypeCount
- Android之ListView的getItemViewType和getViewTypeCount
- android 通过getViewTypeCount 和 getItemViewType实现item加载不同布局
- android图文混排与多种类型listView的混搭的item的demo,getItemViewType()和getViewTypeCount()的使用
- Android关于ListView中的getItemViewType与getViewTypeCount
- Android ListView的不同样式,getItemViewType,getViewTypeCount
- Android关于ListView中的getItemViewType与getViewTypeCount
- Android关于ListView中的getItemViewType与getViewTypeCount
- Andriod之Adapter的getViewTypeCount和getItemViewType为Listview的item设置不同的布局
- ListView 使用BaseAdapter时的getItemViewType 和 getViewTypeCount作用
- Day3 照抄文章出错
- 娱乐后的弥补
- Android 学习笔记1
- MapReduce之WordCount
- MFC串口通信
- android listview多种布局 getViewTypeCount和getItemViewType
- 此证书的签发者无效
- LeetCode 292.Nim Game
- 第2章{ 2-3 一个模块一个js文件 }
- Java IO读取文件
- HDU 1528 Card Game Cheater(二分图最大匹配)
- UVA 1451 Average
- POJ 2411_Mondriaan's Dream
- 《Java编程思想》学习笔记(转载csdn里的文章,打包成一个)