IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android RecyclerView的简单使用(1),后台开发Android岗 -> 正文阅读

[移动开发]Android RecyclerView的简单使用(1),后台开发Android岗

RecyclerViewActivity

public?class?RecyclerViewActivity?extends?ActivityBase{

ActivityRecyclerviewBinding?recyclerviewBinding;

@O

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

verride

protected?void?onCreate(@Nullable?Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

recyclerviewBinding?=?ActivityRecyclerviewBinding.inflate(getLayoutInflater());

setContentView(recyclerviewBinding.getRoot());

LinearLayoutManager?llManager?=?new?LinearLayoutManager(this);

//默认垂直展示,这里设置为水平显示

llManager.setOrientation(LinearLayoutManager.HORIZONTAL);

//设置?RecyclerView?的布局管理器

recyclerviewBinding.rvUserinfo.setLayoutManager(llManager);

List?userList?=?new?ArrayList<>();

userList.add(new?UserInfo(“苏妲己”,?R.mipmap.scc_1));

userList.add(new?UserInfo(“王昭君”,?R.mipmap.scc_7));

BaseRecyclerAdapter?adapter?=?new?BaseRecyclerAdapter(this,userList)?{

@Override

public?int?getItemLayoutId(int?viewType)?{

return?R.layout.item_rv_userinfo;

}

@Override

public?void?convert(RecyclerViewHolder?holder,?int?position,?UserInfo?bean)?{

holder.setText(R.id.tv_name,bean.getName());

holder.setText(R.id.tv_content,bean.getContent());

holder.setImageResource(R.id.iv_head,bean.getHead());

}

};

//设置?RecyclerView?的数据适配器。

recyclerviewBinding.rvUserinfo.setAdapter(adapter);

//addItemDecoration

recyclerviewBinding.rvUserinfo.addItemDecoration(new?RvDividerItemDecoration(this,10));

}

}

activity_recyclerview.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<androidx.recyclerview.widget.RecyclerView

android:id="@+id/rv_userinfo"

android:layout_width=“match_parent”

android:layout_height=“match_parent”/>

item_rv_userinfo.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“wrap_content”

android:layout_height=“match_parent”>

<ImageView

android:id="@+id/iv_head"

…/>

<TextView

android:id="@+id/tv_name"

…/>

<TextView

android:id="@+id/tv_content"

…/>

BaseRecyclerAdapter

public?abstract?class?BaseRecyclerAdapter?extends?RecyclerView.Adapter?{

protected?final?List?mData;

protected?final?Context?mContext;

protected?LayoutInflater?mInflater;

private?OnItemClickListener?mClickListener;

private?OnItemLongClickListener?mLongClickListener;

public?BaseRecyclerAdapter(Context?ctx,?List?list)?{

mData?=?(list?!=?null)???list?:?new?ArrayList();

mContext?=?ctx;

mInflater?=?LayoutInflater.from(ctx);

}

@Override

public?RecyclerViewHolder?onCreateViewHolder(ViewGroup?parent,?int?viewType)?{

创建一个新视图,该视图定义item的UI

final?RecyclerViewHolder?holder?=?new?RecyclerViewHolder(mContext,

mInflater.inflate(getItemLayoutId(viewType),?parent,?false));

if?(mClickListener?!=?null)?{

holder.itemView.setOnClickListener(new?View.OnClickListener()?{

@Override

public?void?onClick(View?v)?{

mClickListener.onItemClick(holder.itemView,?holder.getLayoutPosition());

}

});

}

if?(mLongClickListener?!=?null)?{

holder.itemView.setOnLongClickListener(new?View.OnLongClickListener()?{

@Override

public?boolean?onLongClick(View?v)?{

mLongClickListener.onItemLongClick(holder.itemView,?holder.getLayoutPosition());

return?true;

}

});

}

return?holder;

}

@Override

public?void?onBindViewHolder(RecyclerViewHolder?holder,?int?position)?{

convert(holder,?position,?mData.get(position));

}

@Override

public?int?getItemCount()?{

return?mData.size();

}

public?void?add(int?pos,?T?item)?{

mData.add(pos,?item);

notifyItemInserted(pos);

}

public?void?delete(int?pos)?{

mData.remove(pos);

notifyItemRemoved(pos);

}

public?void?setOnItemClickListener(OnItemClickListener?listener)?{

mClickListener?=?listener;

}

public?void?setOnItemLongClickListener(OnItemLongClickListener?listener)?{

mLongClickListener?=?listener;

}

abstract?public?int?getItemLayoutId(int?viewType);

abstract?public?void?convert(RecyclerViewHolder?holder,?int?position,?T?bean);

public?interface?OnItemClickListener?{

public?void?onItemClick(View?itemView,?int?pos);

}

public?interface?OnItemLongClickListener?{

public?void?onItemLongClick(View?itemView,?int?pos);

}

}

RecyclerViewHolder

public?class?RecyclerViewHolder?extends?RecyclerView.ViewHolder?{

private?SparseArray?mViews;//集合类,layout里包含的View,以view的id作为key,value是view对象

private?Context?mContext;//上下文对象

public?RecyclerViewHolder(Context?ctx,?View?itemView)?{

super(itemView);

mContext?=?ctx;

mViews?=?new?SparseArray();

}

private??T?findViewById(int?viewId)?{

View?view?=?mViews.get(viewId);

if?(view?==?null)?{

view?=?itemView.findViewById(viewId);

mViews.put(viewId,?view);

}

return?(T)?view;

}

public?View?getView(int?viewId)?{

return?findViewById(viewId);

}

public?TextView?getTextView(int?viewId)?{

return?(TextView)?getView(viewId);

}

public?Button?getButton(int?viewId)?{

return?(Button)?getView(viewId);

}

public?ImageView?getImageView(int?viewId)?{

return?(ImageView)?getView(viewId);

}

public?ImageButton?getImageButton(int?viewId)?{

return?(ImageButton)?getView(viewId);

}

public?EditText?getEditText(int?viewId)?{

return?(EditText)?getView(viewId);

}

public?RecyclerViewHolder?setText(int?viewId,?String?value)?{

TextView?view?=?findViewById(viewId);

view.setText(MStringUtils.isNullOrEmpty(value)???“”?:?value);

return?this;

}

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-12-05 12:09:21  更:2021-12-05 12:11:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:26:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码