乌兰察布市建设银行网站,盗版视频网站建设费用,做网站的功能结构布局,wordpress 下载选择✅作者简介#xff1a;大家好#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式#xff0c;持续分享Java技术内容。 #x1f34e;个人主页#xff1a;Meteors.的博客 #x1f49e;当前专栏#xff1a; 设计模式 ✨特色专栏#xff1a; 知识分享 … ✅作者简介大家好我是 Meteors., 向往着更加简洁高效的代码写法与编程方式持续分享Java技术内容。 个人主页Meteors.的博客 当前专栏 设计模式 ✨特色专栏 知识分享 本文内容 23种设计模式——适配器模式(Adapter)详解 ** ps ** 阅读文章如果有问题或者疑惑欢迎在评论区提问或指出。 目录
一、背景
二、 数据模型被适配的对象
三、适配器实现核心适配逻辑
四、使用适配器Activity代码
五、适配器模式对应关系 一、背景 你现在可能对于它有些陌生但是原生安卓app的列表大部分是使用它来实现的android项目中有太多地方使用过它了如下图。正是有了它才让数据与图片可以在列表中显示。下面让我们一起揭开它的神秘面纱吧 二、 数据模型被适配的对象 public class User {private String name; // 用户名private int age; // 用户年龄// 构造函数public User(String name, int age) {this.name name;this.age age;}// 获取用户名public String getName() { return name; }// 获取用户年龄public int getAge() { return age; }
} 这段代码定义了一个简单的User类包含用户名和年龄两个属性。这个类就是列表中每一列需要显示的数据。 三、适配器实现核心适配逻辑 public class UserAdapter extends RecyclerView.AdapterUserAdapter.UserViewHolder {private ListUser users; // 存储用户数据列表// 构造函数接收数据列表public UserAdapter(ListUser users) {this.users users;}// 定义ViewHolder用于缓存视图元素public static class UserViewHolder extends RecyclerView.ViewHolder {TextView nameView; // 显示姓名的TextViewTextView ageView; // 显示年龄的TextViewpublic UserViewHolder(View itemView) {super(itemView);// 从布局文件中查找对应的视图组件nameView itemView.findViewById(R.id.tv_name);ageView itemView.findViewById(R.id.tv_age);}}// 创建新视图时调用Overridepublic UserViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {// 加载列表项的布局文件View view LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent, false);return new UserViewHolder(view);}// 将数据绑定到视图上Overridepublic void onBindViewHolder(UserViewHolder holder, int position) {User user users.get(position); // 获取当前位置的数据holder.nameView.setText(user.getName()); // 设置姓名holder.ageView.setText(String.valueOf(user.getAge())); // 设置年龄}// 返回数据总数Overridepublic int getItemCount() {return users.size();}
} 这段代码是适配器的核心实现 继承RecyclerView.Adapter并指定ViewHolder类型 在构造函数中接收要显示的数据列表 实现三个必要方法创建视图、绑定数据、返回数据量 四、使用适配器Activity代码 // 准备测试数据
ListUser userList new ArrayList();
userList.add(new User(张三, 25));
userList.add(new User(李四, 30));// 获取RecyclerView控件
RecyclerView recyclerView findViewById(R.id.recyclerView);// 设置布局管理器决定列表如何排列
recyclerView.setLayoutManager(new LinearLayoutManager(this));// 创建并设置适配器
recyclerView.setAdapter(new UserAdapter(userList)); 其实就是页面代码里面使用了我明定义的列表。这段代码说了适配器的使用 准备要显示的数据 获取列表控件 设置列表布局方式 创建适配器并绑定数据 五、适配器模式对应关系 Target接口RecyclerView.Adapter定义的接口onCreateViewHolder等方法 AdapteeListUser数据列表原始数据格式 AdapterUserAdapter类将数据适配为视图 Client使用RecyclerView的代码通过适配器间接使用数据 这个例子展示了适配器模式如何将数据列表(ListUser)转换为可以在屏幕上显示的列表项视图。 最后 其它设计模式会陆续更新希望文章对你有所帮助