# EasyAdapter **Repository Path**: HarmonyOS-tpc/EasyAdapter ## Basic Information - **Project Name**: EasyAdapter - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-17 - **Last Updated**: 2023-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## EasyAdapter ## Introduction A simplified and powerful version for openharmony [BaseItemProvider]. ## Usage instructions Ordinary use: ``` java adapter = new EasyAdapter(userList, ResourceTable.Layout_item) { protected void bind(@NotNull ViewHolder holder, @NotNull User user, int position) { holder.setText(ResourceTable.Id_tv_name, "name: " + user.getName()); holder.setText(ResourceTable.Id_tv_age, "age: " + user.getAge()); } }; adapter.setOnItemClickListener(new MultiItemTypeAdapter.SimpleOnItemClickListener() { public void onItemClick(@NotNull Component view, @NotNull ViewHolder holder, int position) { super.onItemClick(view, holder, position); ToastDialog toast = new ToastDialog(MainAbility.this); toast.setText("position - " + position); toast.show(); userList.remove(position); adapter.notifyDataSetItemRemoved(position + adapter.getHeadersCount()); } }); adapter.addHeaderView(createView("Header - 1,点我在头部添加一条数据", false)); adapter.addHeaderView(createView("Header - 2,点我在头部添加一条数据", false)); adapter.addFootView(createView("Footer - 1,点我在末尾添加一条数据", true)); adapter.addFootView(createView("Footer - 2,点我在末尾添加一条数据", true)); listContainer.setItemProvider(adapter); ``` Multiple entries: ``` java multiItemTypeAdapter = new MultiItemTypeAdapter<>(userList); multiItemTypeAdapter.addItemDelegate(new OneDelegate()); multiItemTypeAdapter.addItemDelegate(new TwoDelegate()); multiItemTypeAdapter.addHeaderView(createView("Multi Header view1111", false)); multiItemTypeAdapter.addHeaderView(createView("Multi Header view22222", false)); multiItemTypeAdapter.addFootView(createView("Multi Footer view", false)); multiItemTypeAdapter.setOnItemClickListener(new MultiItemTypeAdapter.OnItemClickListener() { @Override public void onItemClick(@NotNull Component view, @NotNull ViewHolder holder, int position) { ToastDialog toast = new ToastDialog(MainAbility.this); toast.setText("position: " + position); toast.show(); } @Override public boolean onItemLongClick(@NotNull Component view, @NotNull ViewHolder holder, int position) { return false; } }); listContainer.setItemProvider(multiItemTypeAdapter); public class OneDelegate implements ItemDelegate { @Override public int getLayoutId() { return ResourceTable.Layout_simple_list_item; } @Override public boolean isThisType(@NotNull User item, int position) { return position % 2 != 0; } @Override public void bind(@NotNull ViewHolder holder, @NotNull User user, int position) { holder.setText(ResourceTable.Id_text1, "name: " + user.getName() + " - " + position); } } public class TwoDelegate implements ItemDelegate { @Override public int getLayoutId() { return ResourceTable.Layout_simple_list_item; } @Override public boolean isThisType(@NotNull User item, int position) { return position % 2 == 0; } @Override public void bind(@NotNull ViewHolder holder, @NotNull User user, int position) { holder.setText(ResourceTable.Id_text1, "age: " + user.getAge()); ShapeElement element = new ShapeElement(); element.setRgbColor(RgbColor.fromArgbInt(Color.RED.getValue())); holder.getView(ResourceTable.Id_text1).setBackground(element); } } ``` ## Installation instruction **Method 1:** Generate the .har package through the library and add the .har package to the libs folder. Add the following code to the entry gradle: ``` implementation fileTree (dir: 'libs', include: ['*.jar', '*.har']) ``` **Method 2:** In project level build.gradle: ``` allprojects{ repositories{ mavenCentral() } } ``` Add the following code to the entry gradle: ``` implementation project(path: ': easy-adapter') ```