多条目加载--->(如:新闻的布局)

来源:互联网 发布:淘宝二手苹果ipad 编辑:程序博客网 时间:2024/05/22 07:05

适配器
//////////////////////////
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.listviewmoreitemloaddemo.R;

import java.util.List;

import static com.example.listviewmoreitemloaddemo.R.id.tvContent1;
import static com.example.listviewmoreitemloaddemo.R.id.tvContent2;

public class MyBaseAdapter extends BaseAdapter {

private static final int TYPE_1 = 0;private static final int TYPE_2 = 1;private List<String> list;private Context context;public MyBaseAdapter(Context context, List<String> list){        this.context = context;        this.list = list;}@Overridepublic int getCount() {    return list.size();}@Overridepublic Object getItem(int position) {    return null;}@Overridepublic long getItemId(int position) {    return position;}/** * 得到你想要显示的布局类型 * @param position * @return */@Overridepublic int getItemViewType(int position) {    if(position % 2 == 0){        return TYPE_1;    }else{        return TYPE_2;    }}/** *指定你要加载的条目类型 * @return */@Overridepublic int getViewTypeCount() {    return 2;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {    ViewHolder viewHolder = null;    ViewHolder2 viewHolder2 = null;    //获得想要显示的布局类型    int type = getItemViewType(position);    //选择想要显示的布局类型    switch (type){        case TYPE_1:        {            if(convertView == null) {                viewHolder = new ViewHolder();                convertView = convertView.inflate(context, R.layout.item1, null);                viewHolder.tvContent1 = (TextView) convertView.findViewById(tvContent1);                convertView.setTag(viewHolder);            }else{                viewHolder = (ViewHolder) convertView.getTag();            }            viewHolder.tvContent1.setText(list.get(position));        }            break;        case TYPE_2:        {            if(convertView == null){                viewHolder2 = new ViewHolder2();                convertView = convertView.inflate(context,R.layout.item2,null);                viewHolder2.tvContent2 = (TextView) convertView.findViewById(tvContent2);                convertView.setTag(viewHolder2);            }else{                viewHolder2 = (ViewHolder2) convertView.getTag();            }            viewHolder2.tvContent2.setText(list.get(position));        }            break;    }    return convertView;}static class ViewHolder{    TextView tvContent1;}static class ViewHolder2{    TextView tvContent2;}

}

0 0
原创粉丝点击