{"id":19510832,"url":"https://github.com/smuyyh/easyadapter","last_synced_at":"2025-04-26T03:32:23.301Z","repository":{"id":108853091,"uuid":"63784298","full_name":"smuyyh/EasyAdapter","owner":"smuyyh","description":"Android 轻量级适配器，简化使用，适应所有的AbsListView、RecyclerView。支持HeaderView与FooterView~","archived":false,"fork":false,"pushed_at":"2022-10-09T04:07:13.000Z","size":138,"stargazers_count":167,"open_issues_count":2,"forks_count":55,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-04T07:36:04.646Z","etag":null,"topics":["adapter","android","listview","recyclerview"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smuyyh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-07-20T13:36:39.000Z","updated_at":"2024-11-02T04:35:55.000Z","dependencies_parsed_at":"2023-04-15T22:46:48.956Z","dependency_job_id":null,"html_url":"https://github.com/smuyyh/EasyAdapter","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smuyyh%2FEasyAdapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smuyyh%2FEasyAdapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smuyyh%2FEasyAdapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smuyyh%2FEasyAdapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smuyyh","download_url":"https://codeload.github.com/smuyyh/EasyAdapter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250926920,"owners_count":21509057,"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","listview","recyclerview"],"created_at":"2024-11-10T23:17:53.865Z","updated_at":"2025-04-26T03:32:22.709Z","avatar_url":"https://github.com/smuyyh.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyAdapter\n#### Android万能适配器，通吃所有的AbsListView、RecyclerView。\n\n### 添加依赖\n```\nbuildscript {\n    repositories {\n        ...\n        maven { url \"https://jitpack.io\" }\n    }\n    dependencies {\n        ...\n    }\n}\n```\n\n```\ndependencies {\n    implementation 'com.github.smuyyh:EasyAdapter:1.3.0'\n}\n```\n\n### 用法\n\n#### step1\n\n```java\n\n// ListView\npublic class ListViewAdapter extends EasyLVAdapter\u003cBean\u003e {\n\n    public ListViewAdapter(Context context, List\u003cBean\u003e list, int... layoutIds) {\n        super(context, list, layoutIds);\n    }\n\n    @Override\n    public void convert(EasyLVHolder holder, int position, final Bean bean) {\n        holder.setText(R.id.tv, bean.name)\n              .setText(R.id.tv2, bean.name2)\n              .setImageResource(R.id.img, context.getResource().getDrawable(bean.imgRes));\n    }\n\n    @Override\n    public int getLayoutIndex(int position, Bean item) {\n        // 若需多样式布局，则重写该方法\n        if (position % 2 == 0)\n            return 1;\n        else return 0;\n    }\n}\n\n// RecyclerView\npublic class RecyclerViewAdapter extends EasyRVAdapter\u003cBean\u003e {\n    public RecyclerViewAdapter(Context context, List\u003cBean\u003e list, int... layoutIds) {\n        super(context, list, layoutIds);\n    }\n\n    @Override\n    protected void onBindData(EasyRVHolder viewHolder, final int position, Bean item) {\n        viewHolder.setText(R.id.tv, item.name);\n        // 自定义点击可覆盖父类的setOnItemClickListener\n        /*viewHolder.getItemView().setOnClickListener(new View.OnClickListener() {\n            @Override\n            public void onClick(View v) {\n                Toast.makeText(mContext, position+\"---\", Toast.LENGTH_SHORT).show();\n            }\n        });*/\n        viewHolder.setImageUrl(R.id.iv, \"https://img.25pp.com//ppnews/zixun_img/6fc/096/1444271700253231.jpg\");\n    }\n\n    @Override\n    public int getLayoutIndex(int position, Bean item) {\n        if (position % 2 == 0)\n            return 0;\n        else return 1;\n    }\n}\n```\n\n#### step2\n\n```java\n// 1、若需要调用adapter.setImageUrl，可以在Application配置全局统一回调\nAdapterImageLoader.init(new AdapterImageLoader.ImageLoader() {\n    @Override\n    public void loadImage(Context context, String url, ImageView view) {\n        Glide.with(context)\n                .load(url)\n                .into(view);\n    }\n});\n\n// 2、若adapter需要单独定制ImageLoader，比如placeHolder，则重写该方法，以替换全局初始化的ImageLoader\n@Override\npublic AdapterImageLoader.ImageLoader getImageLoader() {\n    return new AdapterImageLoader.ImageLoader() {\n        @Override\n        public void loadImage(Context context, String url, ImageView view) {\n            Glide.with(context)\n                    .load(url)\n                    .override(10, 10)\n                    .into(view);\n        }\n    };\n}\n```\n\n#### step3\n\n```java\nListView lv = (ListView) findViewById(R.id.lv);\nlv.setAdapter(new ListViewAdapter(this, list, R.layout.item_list_view_1, R.layout.item_list_view_2));\n```\n\n### 数据操作\nEasyXXAdapter提供以下方法，便于对List数据的增删改。\n```java\n    boolean addAll(List\u003cT\u003e list);\n\n    boolean addAll(int position, List\u003cT\u003e list);\n\n    void add(T data);\n\n    void add(int position, T data);\n\n    void clear();\n\n    boolean contains(T data);\n\n    T getData(int index);\n\n    void modify(T oldData, T newData);\n\n    void modify(int index, T newData);\n\n    boolean remove(T data);\n\n    void remove(int index);\n\n    // RV 独有 点击事件\n    void setOnItemClickListener(OnItemClickListener\u003cT\u003e itemClickListener);\n\n    // RV 独有 长按事件\n    void setOnItemLongClickListener(OnItemLongClickListener\u003cT\u003e itemLongClickListener);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmuyyh%2Feasyadapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmuyyh%2Feasyadapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmuyyh%2Feasyadapter/lists"}