https://github.com/junixapp/easyadapter
An simplify and practical version for hongyangAndroid [baseAdapter],重构了代码,并适配Kotlin。
https://github.com/junixapp/easyadapter
adapter android base-adapter
Last synced: about 1 year ago
JSON representation
An simplify and practical version for hongyangAndroid [baseAdapter],重构了代码,并适配Kotlin。
- Host: GitHub
- URL: https://github.com/junixapp/easyadapter
- Owner: junixapp
- Created: 2018-08-18T15:06:50.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-09-05T14:38:21.000Z (almost 4 years ago)
- Last Synced: 2025-04-02T14:02:18.447Z (about 1 year ago)
- Topics: adapter, android, base-adapter
- Language: Kotlin
- Homepage:
- Size: 183 KB
- Stars: 34
- Watchers: 3
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# EasyAdapter
An simplify and powerful version for hongyangAndroid [baseAdapter].
I remove some class, change some api, rewrite code, to be more simple, support kotlin.
# Gradle
[](https://jitpack.io/#li-xiaojun/EasyAdapter)
```groovy
implementation 'com.github.li-xiaojun:EasyAdapter:Tag'
```
Add it in your root build.gradle at the end of repositories:
```
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
# Sample
普通使用:
```kotlin
adapter = object : EasyAdapter(userList, R.layout.item) {
override fun bind(holder: ViewHolder, user: User, position: Int) {
with(holder) {
setText(R.id.tv_name, "name: " + user.name )
setText(R.id.tv_age, "age: " + user.age)
}
}
}.apply {
setOnItemClickListener(object : MultiItemTypeAdapter.SimpleOnItemClickListener() {
override fun onItemClick(view: View, holder: RecyclerView.ViewHolder, position: Int) {
super.onItemClick(view, holder, position)
Toast.makeText(this@MainActivity, "position - $position", Toast.LENGTH_SHORT).show()
userList.removeAt(position)
// notifyDataSetChanged()
notifyItemRemoved(position + headersCount)
}
})
addHeaderView(createView("Header - 1,点我在头部添加一条数据"))
addHeaderView(createView("Header - 2,点我在头部添加一条数据"))
addFootView(createView("Footer - 1,点我在末尾添加一条数据", true))
addFootView(createView("Footer - 2,点我在末尾添加一条数据", true))
recyclerView.adapter = this
}
```
多条目:
```kotlin
multiItemTypeAdapter = MultiItemTypeAdapter(userList)
.apply {
addItemDelegate(OneDelegate())
addItemDelegate(TwoDelegate())
addHeaderView(createView("Multi Header view1111"))
addHeaderView(createView("Multi Header view22222"))
addFootView(createView("Multi Footer view"))
setOnItemClickListener(object : MultiItemTypeAdapter.OnItemClickListener {
override fun onItemClick(view: View, holder: RecyclerView.ViewHolder, position: Int) {
Toast.makeText(this@MainActivity, "position: $position", Toast.LENGTH_SHORT).show()
}
override fun onItemLongClick(view: View, holder: RecyclerView.ViewHolder, position: Int): Boolean {
return false
}
})
recyclerView.adapter = this
}
internal inner class OneDelegate : ItemDelegate {
override val layoutId: Int
get() = android.R.layout.simple_list_item_1
override fun isThisType(item: User, position: Int): Boolean {
return position % 2 != 0
}
override fun bind(holder: ViewHolder, user: User, position: Int) {
holder.setText(android.R.id.text1, "name: " + user.name + " - " + position)
}
}
internal inner class TwoDelegate : ItemDelegate {
override val layoutId: Int
get() = android.R.layout.simple_list_item_1
override fun isThisType(item: User, position: Int): Boolean {
return position % 2 == 0
}
override fun bind(holder: ViewHolder, user: User, position: Int) {
holder.setText(android.R.id.text1, "age: " + user.age)
holder.getView(android.R.id.text1).setBackgroundColor(Color.RED)
}
}
```