【工具类】打造万能的Listview、GridView和ViewPager和RecyclerView的适配器

打造万能的适配器,超级简单使用,省时省力。

項目地址鏈接

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

Step 2. Add the dependency

dependencies {
            compile 'com.github.fingerth:FingerthCommonAdapter:1.0.1'
    }

CommonAdapter 一个简单的ListView和GrideView的适配器

        ListView lv;

        ArrayList<String> list = new ArrayList<>();
        //list.add("ViewPager Demo");

        lv.setAdapter(new CommonAdapter<String>(this, list, android.R.layout.simple_list_item_1) {
            @Override
            public void convert(ViewHolder helper, String item) {
                helper.setText(android.R.id.text1, item);
            }
        });

CommonPagerAdapter 一款简单的ViewPager适配器


        ViewPager vp;

        ArrayList<String> arrayList = new ArrayList<>();
        for (int i = 1; i < 6; i++) {
            arrayList.add("pager : " + i);
        }

        vp.setAdapter(new CommonPagerAdapter<String>(this, arrayList, R.layout.pager_item_view) {
            @Override
            public void convert(PagerHolder holder, String item) {
                holder.setText(R.id.tv, item);
            }
        });
> 要支持无限滑怎办,不要担心,用这个UnlimitedSlidePagerAdapter<T>
        ViewPager vp;

        ArrayList<String> arrayList = new ArrayList<>();
        for (int i = 1; i < 4; i++) {
            arrayList.add("unlimited pager : " + i);
        }

        UnlimitedSlidePagerAdapter<String> unlimitedSlidePagerAdapter = new UnlimitedSlidePagerAdapter<String>(this, arrayList, R.layout.pager_item_view) {
            @Override
            public void convert(PagerHolder holder, String item) {
                holder.setText(R.id.tv, item);
            }
        };
        vp.setAdapter(unlimitedSlidePagerAdapter);
        vp.setCurrentItem(unlimitedSlidePagerAdapter.getMidPosition(), false);

CommonRecyclerAdapter 一款简单的RecyclerView适配器

正常使用


        RecyclerView rv;

        ArrayList<String> arrayList = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            arrayList.add("item:" + i);
        }

        GridLayoutManager manager = new GridLayoutManager(this, 2);
        rv.setLayoutManager(manager);
        rv.setAdapter(new CommonRecyclerAdapter<String>(this, arrayList) {

            @Override
            public int setLayoutId(int viewType) {
                return android.R.layout.simple_list_item_1;
            }

            @Override
            public void onBind(Holder holder, int RealPosition, String data) {
                holder.setText(android.R.id.text1, data);
            }
        });

有头部,有尾部


        RecyclerView rv;

        ArrayList<String> arrayList = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            arrayList.add("item:" + i);
        }

        CommonRecyclerAdapter<String> adapter = new CommonRecyclerAdapter<String>(this, arrayList) {

            @Override
            public int setLayoutId(int viewType) {
                return android.R.layout.simple_list_item_1;
            }

            @Override
            public void onBind(Holder holder, int RealPosition, String data) {
                holder.setText(android.R.id.text1, data);
            }
        };
        View mHeaderView = View.inflate(this, R.layout.view_header, null);
        adapter.setHeaderView(mHeaderView);
        View mFootView = View.inflate(this, R.layout.view_foot, null);
        adapter.setFootView(mFootView);

        GridLayoutManager manager = new GridLayoutManager(this, 2);
        rv.setLayoutManager(manager);
        rv.setAdapter(adapter);

不同Item的使用


        RecyclerView rv;

        ArrayList<String> arrayList = new ArrayList<>();
        for (int i = 0; i < 50; i++) {
            arrayList.add("item:" + i);
        }

        LinearLayoutManager manager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        rv.setLayoutManager(manager);
        rv.setAdapter(new CommonRecyclerAdapter<String>(this, arrayList) {

            @Override
            public int itemViewType(int position) {
                if (position % 3 == 1) {
                    return 0x88;
                }
                return super.itemViewType(position);
            }

            @Override
            public int setLayoutId(int viewType) {
                switch (viewType) {
                    case 0x88:
                        return R.layout.view_foot;
                    default:
                        return android.R.layout.simple_list_item_1;
                }
            }

            @Override
            public void onBind(Holder holder, int RealPosition, String data) {
                switch (holder.getItemViewType()) {
                    case 0x88:
                        holder.setText(R.id.tv, data);
                        break;
                    default:
                        holder.setText(android.R.id.text1, data);
                        break;
                }

            }
        });
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值