(安卓)RecyclerView 多条目加载 主要代码

来源:互联网 发布:程序员优秀简历 编辑:程序博客网 时间:2024/06/05 13:21


只写最主要的类 ,适配器

import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.List;import bwie.com.day_lanjieqi.R;import bwie.com.day_lanjieqi.bean.Data; public class RecyclerAdpater extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private Context context;    private List<Data> list;    private static final int TYPE_HAS_PIC=0;    private static final int TYPE_NO_PIC=1;    public RecyclerAdpater(Context context, List<Data> list) {        this.context = context;        this.list = list;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        if (viewType==TYPE_HAS_PIC){            //找到布局文件            View v = View.inflate(context, R.layout.recy_view, null);             ViewHolder viewHolder = new ViewHolder(v);            return viewHolder;        }else{            //找到布局文件            View vv = View.inflate(context, R.layout.recy, null);            ViewHolderNoTitle viewHolderNoTitle = new ViewHolderNoTitle(vv);            return viewHolderNoTitle;        }    }    //给控件数据赋值    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        if (holder instanceof ViewHolder){            ViewHolder h= (ViewHolder) holder;            h.title.setText(list.get(position).getTitle());            h.time.setText(list.get(position).getPrice());        }else if(holder instanceof ViewHolderNoTitle){            ViewHolderNoTitle w= (ViewHolderNoTitle) holder;            w.btitle.setText(list.get(position).getTitle());        }    }    //多条目需要重写的方法    @Override    public int getItemViewType(int position) {        if (position%2==0){            return TYPE_HAS_PIC;        }else{            return TYPE_NO_PIC;        }    }    @Override    public int getItemCount() {        return list.size();    }    //俩个不同的布局控件    class ViewHolder extends RecyclerView.ViewHolder{        private  TextView title;        private  TextView time;        public ViewHolder(View itemView) {            super(itemView);            title=(TextView) itemView.findViewById(R.id.a_title);             time=(TextView) itemView.findViewById(R.id.a_time);        }    }    //俩个不同的布局控件    class ViewHolderNoTitle extends RecyclerView.ViewHolder{        private  TextView btitle;        public ViewHolderNoTitle(View itemView) {            super(itemView);            btitle=(TextView) itemView.findViewById(R.id.b_title);        }    }}


原创粉丝点击