首页 > 其他分享 >android 微信会话列表实现

android 微信会话列表实现

时间:2023-07-20 18:31:48浏览次数:47  
标签:conversation 适配器 列表 会话 微信会 android RecyclerView public

Android 微信会话列表实现

1. 简介

本文将教授如何实现 Android 微信会话列表的功能。微信会话列表是一个常见的功能,它显示了用户与其他人或群组的聊天会话列表,用户可以点击进入特定的聊天会话。

2. 实现步骤

下面是实现 Android 微信会话列表的流程,我们将用表格形式展示每个步骤和相应的代码。

步骤 行为 代码
1 创建新的 Android 项目
2 在布局文件中添加 RecyclerView <androidx.recyclerview.widget.RecyclerView>
3 创建会话列表的布局文件,包括会话头像、名称、最新消息等元素
4 创建会话列表的数据模型
5 创建 RecyclerView 的适配器 RecyclerView.Adapter
6 在适配器中绑定数据和布局 onBindViewHolder() 方法
7 在活动或片段中实例化 RecyclerView 和适配器 findViewById() 方法
8 将适配器设置给 RecyclerView setAdapter() 方法
9 在活动或片段中获取会话列表数据
10 将会话列表数据传递给适配器 setData() 方法
11 运行应用并查看会话列表

3. 代码实现

步骤2 - 添加 RecyclerView

在布局文件(例如 activity_main.xml)中添加一个 RecyclerView,并设置其属性和布局管理器。

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp"
    android:scrollbars="vertical"
    app:layoutManager="LinearLayoutManager" />

步骤3 - 创建会话列表布局文件

创建一个新的布局文件(例如 item_conversation.xml),定义会话列表的视图元素。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp">

    <ImageView
        android:id="@+id/avatar"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:src="@drawable/avatar_placeholder" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center_vertical"
        android:layout_marginStart="8dp">

        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:textAppearanceMedium"
            android:text="User Name" />

        <TextView
            android:id="@+id/message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:textAppearanceSmall"
            android:text="Last Message" />

    </LinearLayout>

</LinearLayout>

步骤4 - 创建会话列表的数据模型

创建一个名为 Conversation 的数据模型类,用于存储会话列表的信息。

public class Conversation {
    private int avatar;
    private String name;
    private String message;

    // 构造函数和 getter/setter 方法
}

步骤5 - 创建 RecyclerView 的适配器

创建一个适配器类,继承自 RecyclerView.Adapter,并实现必要的方法。

public class ConversationAdapter extends RecyclerView.Adapter<ConversationAdapter.ViewHolder> {
    private List<Conversation> conversations;

    // 构造函数和 ViewHolder 类

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_conversation, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Conversation conversation = conversations.get(position);
        holder.avatar.setImageResource(conversation.getAvatar());
        holder.name.setText(conversation.getName());
        holder.message.setText(conversation.getMessage());
    }

    @Override
    public int getItemCount() {
        return conversations.size();
    }

    public void setData(List<Conversation> conversations) {
        this.conversations = conversations;
        notifyDataSetChanged();
    }

    // ViewHolder 类和 getItemViewType() 方法
}

步骤6 - 实例化 RecyclerView 和适配器

在活动或

标签:conversation,适配器,列表,会话,微信会,android,RecyclerView,public
From: https://blog.51cto.com/u_16175473/6789732

相关文章

  • android studio Attribute value must be constant
    解决"androidstudioAttributevaluemustbeconstant"错误的步骤当我们在使用AndroidStudio开发应用程序时,有时会遇到"Attributevaluemustbeconstant"的错误。该错误通常发生在我们尝试在XML布局文件中设置属性的值时。下面是解决该错误的步骤,以及每个步骤需要做......
  • Android程序调用接口http请求不到
    经过查询,安卓9.0之后,不允许采用http这种非安全模式,具体参考(48条消息)关于打包安卓Apk在安卓平板和手机不请求接口问题(underfined/netWorkError)问题解决_app打包后访问不了网络_It_渣渣宇的博客-CSDN博客如果还不行,则把相关防火墙在关掉......
  • 关于Android 控件没有动态设置界面效果时,如何处理
    关于Android控件没有动态设置界面效果时,如何处理例子:android:scrollbarThumbVertical动态设置-->listView如果控件只有静态xml界面的设置,没有动态设置时,需要去查看安卓控件的源码,看该控件继承了那个父控件的方法,然后利用反射调用!不同的Android版本,源码可能不同!Android11.......
  • Android使用MD5加密
    codepackagecom.jay.common;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmExcep......
  • el-table表格行拖拽排序或者电子件列表拖拽排序
    用到sortablejs 中文官网,http://www.sortablejs.com/为了页面中可以复用,在common.js下,封装了公用方法import Sortable from‘sortablejs’rowDrop(selector,params,callback){lettbody=document.querySelector(selector)if(!tbody){return}if(window.tableSortab......
  • AndroidDeveloper Weekly No.1
    好文HermesEventBus-饿了么开源的Android跨进程事件分发框架Android开发你需要了解的Gradle配置Android自定义view详解GoogleI/O2016笔记:APK瘦身的正确姿势AndroidVector曲折的兼容之路深入浅出RecyclerView优秀开源项目Music-Player一款UI效果很棒的开源音乐播放器,做音......
  • 技术沙龙 | Android应用之插件化
    有印象的同学们应该知道我在今年的4月份举办了一场上海Android开发者聚会,具体可以见这几篇文章:当时规模浩大,邀请的演讲嘉宾都是一些热爱分享、大家耳熟能详的一些技术大牛,如大头鬼,胡凯,MarkZhai,吉鑫,光景等,而且捧场的还有医生、张涛、lightsky等大家熟知的ID,最后反响也很不错。举办这......
  • Android 8.0 Oreo 来啦!
    阅读文本大概需要2分钟。今天一大早,朋友就发给我这么一张图片:卧槽,原来Android8.0真的叫Oreo啊,这个真的有点没想到,这应该是跟奥利奥达成的合作,毕竟之前也是有过先例的,还记得当年Android4.4KitKat么?就是跟雀巢的合作,之后雀巢的KitKat饼干上都印上了Android小机器人。......
  • Android 妙用TextView实现左边文字,右边图片
    原文:Android妙用TextView实现左边文字,右边图片-Stars-One的杂货小窝有时候,需要文字在左边,右边有个箭头,我个人之前会有两种做法:使用线性布局来实现或者使用约束布局,一个左对齐,一个右对齐这几天突然想到是否可以使用TextView的设置图标的方式实现,研究发现确实可......
  • 更改android studio sdk 下载
    更改AndroidStudioSDK下载路径配置在使用AndroidStudio开发Android应用时,我们经常需要下载和更新AndroidSDK以获取最新的开发工具和资源。默认情况下,AndroidStudio会将SDK下载到用户主目录下的一个隐藏文件夹中。然而,有时我们可能希望将SDK下载到其他位置,比如一个更大的磁盘......