iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在android中利用recyclerview制作一个聊天界面
  • 620
分享到

怎么在android中利用recyclerview制作一个聊天界面

androidrecyclerviewrecycle 2023-05-31 09:05:09 620人浏览 八月长安
摘要

本篇文章给大家分享的是有关怎么在Android中利用recyclerview制作一个聊天界面,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现代码:package c

本篇文章给大家分享的是有关怎么在Android中利用recyclerview制作一个聊天界面,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

实现代码:

package com.itheima74.chatui;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.widget.Button;import android.widget.EditText;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private RecyclerView recyclerview; private EditText et_input; private ArrayList<Msg> mMsgList; private MsgAdapter mMsgAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); initAdapter(); } private void initAdapter() { mMsgAdapter = new MsgAdapter(mMsgList); recyclerview.setAdapter(mMsgAdapter); }  private void initData() { mMsgList = new ArrayList<>(); mMsgList.add(new Msg("Hello!", Msg.TYPE_RECEIVE)); mMsgList.add(new Msg("Hello! Who is that?", Msg.TYPE_SEND)); mMsgList.add(new Msg("This is Jack,Nice to meet you!", Msg.TYPE_RECEIVE)); }  private void initView() { recyclerview = (RecyclerView) findViewById(R.id.recyclerview); et_input = (EditText) findViewById(R.id.et_input); Button bt_send = (Button) findViewById(R.id.bt_send); LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerview.setLayoutManager(layoutManager); bt_send.setOnClickListener(new View.OnClickListener() {  @Override  public void onClick(View v) {  String content = et_input.getText().toString().trim();  // 如果用户没有输入,则是一个空串""  if (!content.isEmpty()) {   mMsgList.add(new Msg(content, Msg.TYPE_SEND));   // 通知数据适配器刷新界面   mMsgAdapter.notifyDataSetChanged();   // 定位到最后一行   recyclerview.scrollToPosition(mMsgList.size() - 1);   // 输入框置空   et_input.setText("");  }  } }); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="Http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#d8e0e8" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerview" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText  android:id="@+id/et_input"  android:layout_width="0dp"  android:layout_height="wrap_content"  android:layout_weight="1"  android:hint="请输入要发送的内容" /> <Button  android:id="@+id/bt_send"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:text="发送" /> </LinearLayout></LinearLayout>
package com.itheima74.chatui;class Msg { static final int TYPE_RECEIVE = 1; static final int TYPE_SEND = 2; String content; int type; Msg(String content, int type) { this.content = content; this.type = type; }}
package com.itheima74.chatui;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.ArrayList;class MsgAdapter extends RecyclerView.Adapter<MsgAdapter.ViewHolder> { private ArrayList<Msg> mMsgList; MsgAdapter(ArrayList<Msg> mMsgList) { this.mMsgList = mMsgList; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(parent.getContext(), R.layout.recyclerview_item, null); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, int position) { Msg msg = mMsgList.get(position); if (msg.type == Msg.TYPE_RECEIVE) {  holder.tv_receive.setVisibility(View.VISIBLE);  holder.tv_send.setVisibility(View.GoNE);  holder.tv_receive.setText(msg.content); } else {  holder.tv_send.setVisibility(View.VISIBLE);  holder.tv_receive.setVisibility(View.GONE);  holder.tv_send.setText(msg.content); } } @Override public int getItemCount() { return mMsgList.size(); } static class ViewHolder extends RecyclerView.ViewHolder { private TextView tv_receive; private TextView tv_send; ViewHolder(View itemView) {  super(itemView);  tv_receive = (TextView) itemView.findViewById(R.id.tv_receive);  tv_send = (TextView) itemView.findViewById(R.id.tv_send); } }}

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="wrap_content" android:padding="10dp"> <TextView android:id="@+id/tv_receive" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/message_left" android:gravity="center" android:text="who?" android:textSize="20sp" /> <TextView android:id="@+id/tv_send" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/tv_receive" android:background="@drawable/message_right" android:gravity="center" android:text="i am your father" android:textSize="20sp" /></RelativeLayout>

以上就是怎么在android中利用recyclerview制作一个聊天界面,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 怎么在android中利用recyclerview制作一个聊天界面

本文链接: https://www.lsjlt.com/news/224765.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在android中利用recyclerview制作一个聊天界面
    本篇文章给大家分享的是有关怎么在android中利用recyclerview制作一个聊天界面,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。实现代码:package c...
    99+
    2023-05-31
    android recyclerview recycle
  • 如何在Android中利用RecyclerView实现一个聊天界面
    这篇文章给大家介绍如何在Android中利用RecyclerView实现一个聊天界面,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体内容如下首先在app/build.gradle(注意有两个build.gradle,...
    99+
    2023-05-30
    android recyclerview
  • 利用Android怎么制作一个APP登录界面
    这期内容当中小编将会给大家带来有关利用Android怎么制作一个APP登录界面,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。布局的xml文件<&#63;xml version="1...
    99+
    2023-05-31
    android pp
  • 怎么在android中利用Socket实现一个聊天小程序
    本篇文章为大家展示了怎么在android中利用Socket实现一个聊天小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下服务器端:package org.hwq.echo; impo...
    99+
    2023-05-31
    android socket roi
  • 怎么在Android中利用Fragment模仿一个微信界面
    本篇文章为大家展示了怎么在Android中利用Fragment模仿一个微信界面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Fragment  自从Android 3.0中引入fragment...
    99+
    2023-05-30
    android fragment
  • 使用Android制作一个欢迎界面
    使用Android制作一个欢迎界面?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。闪屏:在打开App时,展示,持续数秒后,自动关闭,进入另外的一个界面,SplashActiv...
    99+
    2023-05-31
    android 欢迎
  • 在Java项目中利用continue与break制作一个聊天室小程序
    在Java项目中利用continue与break制作一个聊天室小程序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实现方法如下:package com.swif...
    99+
    2023-05-31
    java continue break
  • 怎么利用PyQt5制作一个简单的登录界面
    这篇文章主要介绍“怎么利用PyQt5制作一个简单的登录界面”,在日常操作中,相信很多人在怎么利用PyQt5制作一个简单的登录界面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么利用PyQt5制作一个简单的登...
    99+
    2023-07-02
  • 怎么在Android中利用RecyclerView实现一个频道管理功能
    本篇文章给大家分享的是有关怎么在Android中利用RecyclerView实现一个频道管理功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。需要在build里添加依赖 com...
    99+
    2023-05-31
    recyclerview android recycle
  • 怎么在Android中利用RecyclerView实现一个快速滚动功能
    本篇文章给大家分享的是有关怎么在Android中利用RecyclerView实现一个快速滚动功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先,在 build.gradle...
    99+
    2023-05-30
    recyclerview android
  • 教你使用Android制作一个引导界面
    本篇文章为大家展示了教你使用Android制作一个引导界面,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。开发的界面(三张图片,滑到最后一个会出现开始体验的Button,下面的小红点会跟着一起滑动):...
    99+
    2023-05-31
    android roi
  • 怎么在Android 中利用RecyclerView实现一个通用适配器功能
    怎么在Android 中利用RecyclerView实现一个通用适配器功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现代码:RViewHolderimport ...
    99+
    2023-05-31
    android recyclerview recycle
  • 怎么在Android中利用extView制作一个跑马灯效果
    本篇文章为大家展示了怎么在Android中利用extView制作一个跑马灯效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。当Layout中只有一个TextView需要实现跑马灯效果时,操作如下。&...
    99+
    2023-05-31
    android textview
  • 怎么在Android应用中利用RecyclerView实现一个分页滚动功能
    怎么在Android应用中利用RecyclerView实现一个分页滚动功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、需求分析最近公司项目要实现一个需求要满足以下功能...
    99+
    2023-05-31
    android recyclerview recycle
  • 在android应用中利用WebView制作一个进度条
    本篇文章为大家展示了在android应用中利用WebView制作一个进度条,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。进度条的位置问题 进度条加载完成后消失,是invisible还是go...
    99+
    2023-05-31
    android webview
  • 怎么在Android应用中添加一个欢迎界面
    这篇文章给大家介绍怎么在Android应用中添加一个欢迎界面,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。main_activity.xml文件代码如下:<xml version="1.0&q...
    99+
    2023-05-31
    android 欢迎 roi
  • 怎么用Python制作一个可以聊天的皮卡丘版桌面宠物
    这篇文章主要介绍了怎么用Python制作一个可以聊天的皮卡丘版桌面宠物,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开发工具Python版本:3.6.4相关模块:PyQt5模...
    99+
    2023-06-29
  • PHP中怎么利用WebSocket实现一个在线聊天通讯系统
    今天就跟大家聊聊有关PHP中怎么利用WebSocket实现一个在线聊天通讯系统,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。新建WebSocket....
    99+
    2024-04-02
  • 在SpringBoot中利用Websocket实现一个网页聊天功能
    这篇文章将为大家详细讲解有关在SpringBoot中利用Websocket实现一个网页聊天功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。导入websocket的包。通过使用SpringB...
    99+
    2023-05-31
    springboot websocket bs
  • 在Android应用中怎么利用dialog实现一个支付密码界面弹窗
    这篇文章将为大家详细讲解有关在Android应用中怎么利用dialog实现一个支付密码界面弹窗,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现过程1,先写xml文件:dialog_keyb...
    99+
    2023-05-31
    android roi dialog
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作