{"id":20958530,"url":"https://github.com/junixapp/easyadapter","last_synced_at":"2025-05-14T06:32:24.550Z","repository":{"id":48149434,"uuid":"145229579","full_name":"junixapp/EasyAdapter","owner":"junixapp","description":"An simplify and practical version for hongyangAndroid [baseAdapter]，重构了代码，并适配Kotlin。","archived":false,"fork":false,"pushed_at":"2022-09-05T14:38:21.000Z","size":187,"stargazers_count":34,"open_issues_count":4,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T14:02:18.447Z","etag":null,"topics":["adapter","android","base-adapter"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/junixapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-18T15:06:50.000Z","updated_at":"2024-11-13T06:57:40.000Z","dependencies_parsed_at":"2022-08-26T09:31:21.734Z","dependency_job_id":null,"html_url":"https://github.com/junixapp/EasyAdapter","commit_stats":null,"previous_names":["junixapp/easyadapter"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junixapp%2FEasyAdapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junixapp%2FEasyAdapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junixapp%2FEasyAdapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junixapp%2FEasyAdapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junixapp","download_url":"https://codeload.github.com/junixapp/EasyAdapter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254084700,"owners_count":22011925,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adapter","android","base-adapter"],"created_at":"2024-11-19T01:48:09.855Z","updated_at":"2025-05-14T06:32:19.538Z","avatar_url":"https://github.com/junixapp.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyAdapter\nAn simplify and powerful version for hongyangAndroid [baseAdapter].\n\nI remove some class, change some api, rewrite code, to be more simple, support kotlin.\n\n# Gradle\n[![](https://jitpack.io/v/li-xiaojun/EasyAdapter.svg)](https://jitpack.io/#li-xiaojun/EasyAdapter)\n```groovy\nimplementation 'com.github.li-xiaojun:EasyAdapter:Tag'\n```\n\nAdd it in your root build.gradle at the end of repositories:\n```\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n\n# Sample\n普通使用：\n```kotlin\nadapter = object : EasyAdapter\u003cUser\u003e(userList, R.layout.item) {\n        override fun bind(holder: ViewHolder, user: User, position: Int) {\n            with(holder) {\n                setText(R.id.tv_name, \"name: \" + user.name )\n                setText(R.id.tv_age, \"age: \" + user.age)\n            }\n        }\n    }.apply {\n        setOnItemClickListener(object : MultiItemTypeAdapter.SimpleOnItemClickListener() {\n            override fun onItemClick(view: View, holder: RecyclerView.ViewHolder, position: Int) {\n                super.onItemClick(view, holder, position)\n                Toast.makeText(this@MainActivity, \"position - $position\", Toast.LENGTH_SHORT).show()\n                userList.removeAt(position)\n//                    notifyDataSetChanged()\n                notifyItemRemoved(position + headersCount)\n            }\n        })\n        addHeaderView(createView(\"Header - 1，点我在头部添加一条数据\"))\n        addHeaderView(createView(\"Header - 2，点我在头部添加一条数据\"))\n        addFootView(createView(\"Footer - 1，点我在末尾添加一条数据\", true))\n        addFootView(createView(\"Footer - 2，点我在末尾添加一条数据\", true))\n        recyclerView.adapter = this\n    }\n```\n\n\n多条目：\n```kotlin\nmultiItemTypeAdapter = MultiItemTypeAdapter\u003cUser\u003e(userList)\n    .apply {\n        addItemDelegate(OneDelegate())\n        addItemDelegate(TwoDelegate())\n        addHeaderView(createView(\"Multi Header view1111\"))\n        addHeaderView(createView(\"Multi Header view22222\"))\n        addFootView(createView(\"Multi Footer view\"))\n        setOnItemClickListener(object : MultiItemTypeAdapter.OnItemClickListener {\n            override fun onItemClick(view: View, holder: RecyclerView.ViewHolder, position: Int) {\n                Toast.makeText(this@MainActivity, \"position: $position\", Toast.LENGTH_SHORT).show()\n            }\n\n            override fun onItemLongClick(view: View, holder: RecyclerView.ViewHolder, position: Int): Boolean {\n                return false\n            }\n        })\n        recyclerView.adapter = this\n    }\n\ninternal inner class OneDelegate : ItemDelegate\u003cUser\u003e {\n    override val layoutId: Int\n        get() = android.R.layout.simple_list_item_1\n\n    override fun isThisType(item: User, position: Int): Boolean {\n        return position % 2 != 0\n    }\n    override fun bind(holder: ViewHolder, user: User, position: Int) {\n        holder.setText(android.R.id.text1, \"name: \" + user.name + \" - \" + position)\n    }\n}\n\ninternal inner class TwoDelegate : ItemDelegate\u003cUser\u003e {\n    override val layoutId: Int\n        get() = android.R.layout.simple_list_item_1\n\n    override fun isThisType(item: User, position: Int): Boolean {\n        return position % 2 == 0\n    }\n    override fun bind(holder: ViewHolder, user: User, position: Int) {\n        holder.setText(android.R.id.text1, \"age: \" + user.age)\n        holder.getView\u003cView\u003e(android.R.id.text1).setBackgroundColor(Color.RED)\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunixapp%2Feasyadapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunixapp%2Feasyadapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunixapp%2Feasyadapter/lists"}