RecyclerView万能适配器

转载请申明:

没次当我们用RecyclerView是时候,不得不想到要添加点击事件, 头部,尾部,甚至分组繁琐代码烦恼,,于是本人就无奈写了共用的adapter。

使用说明:

如,item资源为

R.layout.fragment_jiongtu_item_of_indexfregment

item里面有个imageview id为

R.id.iv_photoprivate class JionTuAdapter extends BaseRecyclerViewAdapter{public JionTuAdapter(Context context) {super(context);}@Override() {return R.layout.fragment_jiongtu_item_of_indexfregment;}@Overrideprotected int[] setContentViewsIds() {return new int[]{R.id.iv_photo};}int i = 0;@Override(BaseRecyclerViewAdapter adapter, View view, Object object) {//这个object就是ItemType.dataImageView photoView = (ImageView) adapter.getContentViewItemViewById(R.id.iv_photo);photoView.setImageResource((Integer) object);}}

这样,我就可以轻松实现了这个适配器!

然后,测试

recyclerView.setAdapter(adapter = new JionTuAdapter(getActivity()));//添加内容点击事件adapter.setOnContentViewListener(new BaseRecyclerViewAdapter.OnContentViewListener() { @Override(View view, BaseRecyclerViewAdapter adapter, Object object) {Snackbar.Snackbar.LENGTH_SHORT).show();}})(i++) { R.drawable.ic_launcher)); } adapter.update(list, false);//false代表不需要提前清空列表

如果要添加头部,类似上面的adapter,分别实现

getHeaderResoursesetHeaderViewsIdsonHeaderViewUpdate三个方法。如果没有id,记得提供null

/** * 首页的囧图 * @author Sam * * 下午3:17:39 */public class JiongTuFragmentOfIndexFragment extends Fragment {public View convertView; private PullToRefreshStaggeredGridLayout videosList; private JionTuAdapter adapter;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {convertView = inflater.inflate(R.layout.fragment_jiongtu_of_indexfregment, container, false);init(convertView);return convertView;}private void init(View convertView) {videosList = (PullToRefreshStaggeredGridLayout) convertView.findViewById(R.id.lv_index_jiongtu);}@Override() {super.onResume();RecyclerView recyclerView = videosList.getRefreshableView();recyclerView.setAdapter(adapter = new JionTuAdapter(getActivity()));adapter.setOnContentViewListener(new BaseRecyclerViewAdapter.OnContentViewListener() {@Override(View view, BaseRecyclerViewAdapter adapter, Object object) {Snackbar.Snackbar.LENGTH_SHORT).show();}});List<JionTuAdapter.ItemType> list = new ArrayList<JionTuAdapter.ItemType>();i++){//把数据都添加到内容列表list.add(new BaseRecyclerViewAdapter.ItemType(BaseRecyclerViewAdapter.ItemType.TYPE_CONTENT,null));}adapter.update(list, false);//false代表不需要提前清空列表}private class JionTuAdapter extends BaseRecyclerViewAdapter {public JionTuAdapter(Context context) {super(context);}@Override() {return R.layout.fragment_jiongtu_item_of_indexfregment;}@Overrideprotected int[] setContentViewsIds() {return new int[]{R.id.iv_photo};}int i = 0;@Override(BaseRecyclerViewAdapter adapter, View view, Object object) {//这个object就是ItemType.dataImageView photoView = (ImageView) adapter.getContentViewItemViewById(R.id.iv_photo);photoView.setImageResource(i++%2==0?R.mipmap.dota2_meizi1:R.mipmap.dota2_meizi2);} }}

往往教导我们大家要好好学习天天向上,要永不言弃坚持到底百折不挠宁死不屈,

RecyclerView万能适配器

相关文章:

你感兴趣的文章:

标签云: