All Projects → manojbhadane → GenericAdapter

manojbhadane / GenericAdapter

Licence: MIT license
⛳️ Easy to use android databinding ready recyclerview adapter

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to GenericAdapter

GenericRecyclerAdapter
Easiest way to use RecyclerView. Reduce boilerplate code! You don't need to write adapters for listing pages anymore!
Stars: ✭ 53 (+103.85%)
Mutual labels:  adapter, listview, recyclerview, generic
Easyadapter
Android 轻量级适配器,简化使用,适应所有的AbsListView、RecyclerView。支持HeaderView与FooterView~
Stars: ✭ 160 (+515.38%)
Mutual labels:  adapter, listview, recyclerview
recycler-adapter
RecyclerView-driven declarative UIs
Stars: ✭ 124 (+376.92%)
Mutual labels:  adapter, listview, recyclerview
Commonadapter
一个适用于ListView/GridView/RecyclerView的Adapter库,简化大量重复代码,支持多种布局,可自定义图片加载的实现。
Stars: ✭ 219 (+742.31%)
Mutual labels:  adapter, listview, recyclerview
Google Books Android Viewer
Android library to bridge between RecyclerView and sources like web page or database. Includes demonstrator (Google Books viewer)
Stars: ✭ 37 (+42.31%)
Mutual labels:  adapter, listview, recyclerview
adapster
Android library designed to enrich and make your RecyclerView adapters more SOLID
Stars: ✭ 17 (-34.62%)
Mutual labels:  adapter, listview, recyclerview
Boardview
A draggable boardview for java android (Kanban style)
Stars: ✭ 309 (+1088.46%)
Mutual labels:  adapter, listview, recyclerview
Adapter
A quick adapter library for RecyclerView, GridView, ListView, ViewPager, Spinner
Stars: ✭ 376 (+1346.15%)
Mutual labels:  adapter, listview, recyclerview
Superadapter
[Deprecated]. 🚀 Adapter(BaseAdapter, RecyclerView.Adapter) wrapper for Android. 一个Adapter同时适用RecyclerView、ListView、GridView等。
Stars: ✭ 638 (+2353.85%)
Mutual labels:  adapter, listview, recyclerview
Kotlin Adapter
🔥 RecyclerView,AbsListView适配器, 支持多种视图样式, 支持吸顶、侧滑删除、拖拽效果
Stars: ✭ 132 (+407.69%)
Mutual labels:  adapter, listview, recyclerview
Multiselectadapter
MultiSelectAdapter可以让你的Adapter快速实现多选和批量操作
Stars: ✭ 195 (+650%)
Mutual labels:  adapter, recyclerview
Easyadapter
This project demonstrates simple approach for implementation complex lists, based on RecyclerView.
Stars: ✭ 187 (+619.23%)
Mutual labels:  adapter, recyclerview
Sherlockadapter
一个万能的封装了RecyclerView.Adapter的功能库。
Stars: ✭ 186 (+615.38%)
Mutual labels:  adapter, recyclerview
Dsladapter
🔥 Kotlin时代的Adapter, Dsl 的形式使用 RecyclerView.Adapter, 支持折叠展开, 树结构,悬停,情感图状态切换, 加载更多, 多类型Item,侧滑菜单等
Stars: ✭ 231 (+788.46%)
Mutual labels:  adapter, recyclerview
Base
🍁 Base是针对于Android开发封装好一些常用的基类,主要包括通用的Adapter、Activity、Fragment、Dialog等、和一些常用的Util类,只为更简单。
Stars: ✭ 249 (+857.69%)
Mutual labels:  adapter, base
MultiTypeAdapter
RecyclerView通用多类型适配器MultiTypeAdapter,以布局文件为单位更细粒度的条目复用。
Stars: ✭ 18 (-30.77%)
Mutual labels:  adapter, recyclerview
Modular2Recycler
Modular²Recycler is a RecyclerView.Adapter that is modular squared.
Stars: ✭ 72 (+176.92%)
Mutual labels:  adapter, recyclerview
Recyclerviewadapter
A RecyclerView Adapter that support load more and add headerview
Stars: ✭ 141 (+442.31%)
Mutual labels:  adapter, recyclerview
InstantRecyclerView
A library that helps to implement a complex list with RecyclerView.(RecyclerView使用的封装与优化,帮助你快速利用RecyclerView构建复杂列表)
Stars: ✭ 22 (-15.38%)
Mutual labels:  adapter, recyclerview
PrimeAdapter
PrimeAdapter makes working with RecyclerView easier.
Stars: ✭ 54 (+107.69%)
Mutual labels:  adapter, recyclerview

Android Library

GenericAdapter Tweet

An Easy to use adapter for android

  1. No need to create seperate class for adapter
  2. No need of viewholder
  3. More readble code

Supports 2 types of adapters

GenericAdapter : Adapter for simple usage

GenericFilterAdapter : Adapter with list filtering capability

Medium

Please find detail medium post here, Android Generic Adapter

Download

This library is available in jitPack which is the default Maven repository used in Android Studio.

Gradle

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

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

Step 2. Add the dependency in your apps module build.gradle

dependencies {
	 implementation 'com.github.manojbhadane:GenericAdapter:v1.4'
}

Usage

  1. In App level build.gradle
dataBinding {
        enabled true
}
  1. In Activity/Fragment (Java)
 mDataBinding.recylerview.setAdapter(new GenericAdapter<PeopleModel, ListitemMainBinding>(this, arrayList) {
            @Override
            public int getLayoutResId() {
                return R.layout.listitem_main;
            }

            @Override
            public void onBindData(PeopleModel model, int position, ListitemMainBinding dataBinding) {
                dataBinding.txtName.setText(model.getName());
                dataBinding.txtAddress.setText(model.getAddress());
            }

            @Override
            public void onItemClick(PeopleModel model, int position) {

            }
        });
  1. In Activity/Fragment (Kotlin)
 var adapter = object : GenericAdapter<PeopleModel, ListitemMainBinding>(this, arrayList) {
            override fun getLayoutResId(): Int {
                return R.layout.listitem_main
            }

            override fun onBindData(model: PeopleModel?, position: Int, dataBinding: ListitemMainBinding?) {
                dataBinding!!.txtName.text = model.getName()
		dataBinding!!.txtAddress.text = model.getAddress()
            }

            override fun onItemClick(model: PeopleModel?, position: Int) {

            }
        }
	
dataBinding.recyclerview.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false)
dataBinding.recyclerview.adapter = adapter

v1.2

Added list filtering capability to genericAdapter by extending GenericFilterAdapter class

Sample code of adapter with filter

mDataBinding.recylerview.setAdapter(new GenericFilterAdapter<PeopleModel, ListitemMainBinding>(this, arrayList) {
            @Override
            public int getLayoutResId() {
                return R.layout.listitem_main;
            }

            @Override
            public void onBindData(PeopleModel model, int position, ListitemMainBinding dataBinding) {
                dataBinding.txtName.setText(model.getName());
                dataBinding.txtAddress.setText(model.getAddress());
            }

            @Override
            public void onItemClick(PeopleModel model, int position) {

            }

            @Override
            public View getSearchField() {
                return mDataBinding.edtSearch;
            }

            @Override
            public ArrayList<PeopleModel> performFilter(String searchText, ArrayList<PeopleModel> originalList) {
                ArrayList<PeopleModel> filteredList = new ArrayList<>();
                for (PeopleModel row : originalList) {
                    if (row.getName().toLowerCase().contains(searchText.toLowerCase()) 
		    		|| row.getName().contains(searchText) 
				|| row.getAddress().toLowerCase().contains(searchText.toLowerCase())) {
                        filteredList.add(row);
                    }
                }

                return filteredList;
            }
        });

Bugs or Requests

If you encounter any problems feel free to open an issue. If you feel the library is missing a feature, please raise a ticket on GitHub and I'll look into it. Pull request are also welcome.

Spread Some ❤️

GitHub followers Twitter Follow

About The Author

Manoj Bhadane

Android & Backend Developer.

If this library helps you in anyway, show your love ❤️ by putting a on this project ✌️

License

MIT License

Copyright (c) 2020 Manoj Bhadane

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].