https://github.com/islamdidarmd/easyadapter
An adapter to reduce time for writing boilerplate code and speed up build time for RecyclerView.
https://github.com/islamdidarmd/easyadapter
adapter android dataset easyadapter java kotlin recyclerview recyclerview-adapter
Last synced: about 1 year ago
JSON representation
An adapter to reduce time for writing boilerplate code and speed up build time for RecyclerView.
- Host: GitHub
- URL: https://github.com/islamdidarmd/easyadapter
- Owner: islamdidarmd
- License: mit
- Created: 2018-12-27T08:32:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-20T04:24:45.000Z (over 7 years ago)
- Last Synced: 2025-03-16T12:13:45.456Z (over 1 year ago)
- Topics: adapter, android, dataset, easyadapter, java, kotlin, recyclerview, recyclerview-adapter
- Language: Kotlin
- Homepage:
- Size: 188 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EasyAdapter
An adapter to reduce time for writing boilerplate code and speed up build time for RecyclerView.
[](https://jitpack.io/v/islamdidarmd/easyadapter)
### Demo

## Installation (with Gradle)
Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
```groovy
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
Step 2. Add the dependency
```groovy
dependencies {
implementation 'com.github.islamdidarmd:easyadapter:0.1.2'
}
```
### How to use
For general RecyclerView:
`Java`
```java
recyclerView.setAdapter(new EasyAdapter.Builder()
.setLayout(R.layout.row_list)
.setData(Arrays.asList(1, 2, 3, 4))
.setCallback(new Callback() {
@Override
public void onBindViewHolder(@NonNull EasyAdapter.Companion.ViewHolder viewHolder, @NonNull View itemView, int position, Integer item) {
TextView tv = viewHolder.itemView.findViewById(R.id.textView);
tv.setText(item.toString());
}
})
.build());
```
`Kotlin`
```kotlin
recyclerView.adapter = EasyAdapter.Builder()
.setLayout(R.layout.row_list)
.setData(list)
.setCallback(object : Callback {
override fun onBindViewHolder(viewHolder: EasyAdapter.Companion.ViewHolder, itemView: View, position: Int, item: Int) {
val tv: TextView = viewHolder.itemView.textView
tv.text = item.toString()
}
})
.build()
```
For RecyclerView with multiple section:
`Java`
```java
recyclerView.setAdapter(new EasySectionedAdapter.Builder()
.setHeaderLayout(R.layout.row_header)
.setChildLayout(R.layout.row_list)
.setDataSet(Arrays.asList(Arrays.asList(1, 2, 3, 4), Arrays.asList(1, 2), Arrays.asList(1, 2, 3)))
.setCallback(new SectionedCallback() {
@Override
public void onBindHeader(@NotNull EasyAdapter.Companion.ViewHolder viewHolder, int section) {
viewHolder.itemView.setBackgroundColor(Color.BLACK);
TextView tv = viewHolder.itemView.findViewById(R.id.textView);
tv.setTextColor(Color.WHITE);
tv.setText("Header");
}
@Override
public void onBindChild(@NotNull EasyAdapter.Companion.ViewHolder viewHolder, int section, int positionInSection, int position, Integer item) {
TextView tv = viewHolder.itemView.findViewById(R.id.textView);
tv.setText(item.toString());
tv.setTextColor(Color.BLACK);
viewHolder.itemView.setBackgroundColor(Color.WHITE);
}
})
.build());
```
`Kotlin`
```kotlin
recyclerView.adapter = EasySectionedAdapter.Builder()
.setHeaderLayout(R.layout.row_header)
.setChildLayout(R.layout.row_list)
.setDataSet(Arrays.asList(Arrays.asList(1, 2, 3, 4), Arrays.asList(1, 2), Arrays.asList(1, 2, 3)))
.setCallback(object : SectionedCallback {
override fun onBindHeader(viewHolder: EasyAdapter.Companion.ViewHolder, section: Int) {
viewHolder.itemView.setBackgroundColor(Color.BLACK)
val tv = viewHolder.itemView.textView
tv.setTextColor(Color.WHITE)
tv.text = "Header for section $section"
}
override fun onBindChild(viewHolder: EasyAdapter.Companion.ViewHolder, section: Int, positionInSection: Int, position: Int, item: Int) {
val tv = viewHolder.itemView.textView
tv.text = item.toString()
tv.setTextColor(Color.BLACK)
viewHolder.itemView.setBackgroundColor(Color.WHITE)
}
})
.build()
}
```
To update dataset use ```Adapter.updateDataSet()``` with your new dataset.
For a complete example see sample app