Android_基于BMOB的聊天软件_添加好友

之前提过为什么要用BMOB,前段时间完成了用户的注册与登录,现在做添加好友功能,主要

参考BMOB官网

提供的资料。
主要流程就是,输入好友关键字,点击搜索,显示服务器上对应的搜索结果,用BMOB的好处就是不用自己建数据库啊,省了一个做前端还要处理后端的问题。
搜索代码如下:

private void serachFriend() {if(TextUtils.isEmpty(et_search.getText().toString())){Toast.makeText(getApplicationContext(), "查找内容不能为空哦。", Toast.LENGTH_LONG).show();return;}String searchName = et_search.getText().toString();progress = new ProgressDialog(AddFrindActivity.this);progress.setMessage("正在搜索...");progress.setCanceledOnTouchOutside(true);progress.show();searchService(searchName,progress);}private void searchService(String searchName, final ProgressDialog progress2) {// TODO Auto-generated method stubBmobQuery<MyUser> query = new BmobQuery<MyUser>();query.addWhereContains("username", searchName);query.findObjects(getApplicationContext(), new FindListener<MyUser>() {@Overridepublic void onSuccess(List<MyUser> arg0) {progress2.dismiss();
//              Toast.makeText(getApplicationContext(), arg0.size()+arg0.toString(), Toast.LENGTH_LONG).show();System.out.println(arg0.size()+arg0.toString());if(adapter == null){adapter = new AddFriendAdapter(getApplicationContext(), arg0);lv_search_friend.setAdapter(adapter);}else{adapter.notifyDataSetChanged();}}@Overridepublic void onError(int arg0, String arg1) {progress2.dismiss();Toast.makeText(getApplicationContext(), "查询失败:" + arg0 + "  , "+arg1, Toast.LENGTH_LONG).show();}});}

为显示搜索结果,采用ListView显示,为该ListView创建基于BaseAdapter的适配器,代码如下:

package com.ppl.get_loc.chat;import java.util.List;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;import com.loopj.android.image.SmartImageView;
import com.ppl.get_loc.R;public class AddFriendAdapter extends BaseAdapter {private Context mContext;private List<MyUser>data;private LayoutInflater layoutInflater;public AddFriendAdapter(Context mContext, List<MyUser> data) {super();this.mContext = mContext;this.data = data;layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn data.size();}@Overridepublic Object getItem(int arg0) {// TODO Auto-generated method stubreturn data.get(arg0);}@Overridepublic long getItemId(int arg0) {// TODO Auto-generated method stubreturn arg0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {viewHolder holder = null;if(convertView == null){holder = new viewHolder();convertView = layoutInflater.inflate(R.layout.item_search_friend, null);holder.bt = (Button) convertView.findViewById(R.id.bt_search_add);holder.SIV = (SmartImageView) convertView.findViewById(R.id.SIV_search_avatar);holder.tv = (TextView) convertView.findViewById(R.id.tv_search_username);convertView.setTag(holder);}else{holder = (viewHolder)convertView.getTag();}MyUser tmpUserInfo = data.get(position);holder.SIV.setImageUrl(tmpUserInfo.getNick_URL_NET());holder.tv.setText(tmpUserInfo.getUsername());//点击添加按钮holder.bt.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubToast.makeText(mContext, "点击了添加按钮", Toast.LENGTH_LONG).show();}});return convertView;}private class viewHolder{private SmartImageView  SIV;private TextView tv;private Button bt;}
}

其中要用到ImageView显示一个网址提供的图片,所以用了之前在github上下载的一个库com.loopj.android.image 它提供了该功能,效果如下:
这里写图片描述这里写图片描述
接下来就是 处理用户关系啦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1379865.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Android_聊天软件_加好友_与服务器交互

番外篇&#xff1a; 1.在做界面时&#xff0c;总遇到输入键盘不能自己收起&#xff0c;导致需要手动收起键盘&#xff0c;使操作多一步&#xff0c;现在说一下我的流程&#xff0c; 检查键盘是否显示&#xff0c;代码如下&#xff1a; private Context mContext;private Vie…

佛祖保佑,永不宕机,永无bug

当我们的程序编译通过&#xff0c;能预防的bug也都预防了&#xff0c;其它的就只能交给天意了。当然请求佛祖的保佑也是必不可少的。 下面是一些常用的保佑图&#xff1a; 佛祖保佑图 ——————————————————————————————————————————…

Android_聊天软件_添加好友_与服务器交互

上一篇文章介绍了用户A向服务器发送添加B的请求&#xff0c;这篇文章介绍服务器通知用户B&#xff0c;以及用户B同意与否的操作。 好久没有更新文章&#xff0c;主要是前段时间花了2天时间帮别人画了点东西&#xff0c;还有就是充电了&#xff0c;主要是Service、Notification…

wxid转扫一扫添加好友

什么是扫一扫&#xff1f;就是在日益严格的环境下&#xff0c;手动加人超过两天直接被判为营销&#xff0c;添加超过10个对方就收不到消息了&#xff0c;而扫一扫协议刚好就能规避&#xff0c;正常扫一扫添加只有在面对面或者推荐扫码才能添加&#xff0c;而这个就是模拟面对面…

原始套接字编程(AF_PACKET+SOCK_RAW)模拟一个PING

1. 背景 最近看一个客户的代码片段&#xff0c;发现他在用原始套接字编程&#xff0c;一般学习套接字都是流式套接字和数据报套接字&#xff0c;本来也不是搞网络的&#xff0c;原始套接字了解得很少&#xff0c;借着这次机会&#xff0c;自己来学习一下原始套接字编程。 2. …

STL初探

STL简介 STL(standard template libaray - 标准模板库)是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 STL的一些版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本&#xff0c;…

PHP最简单自定义自己的框架实现像TP链式sql语句(六)

1、实现效果&#xff0c;链式sql语句封装 order、where、group、limit等封装 2、数据表构造函数入参&#xff0c;ModelBase.php public $table NULL; public function __construct($table){$this->table$table;if(!$this->table){die("no table" );}$this-&…

AI一键生成数字人

AI一键生成数字人,不玩虚的 阅读时长&#xff1a;10分钟 本文内容&#xff1a; 结合开源AI&#xff0c;一键生成短视频发布到常见的某音&#xff0c;某手平台&#xff0c;狠狠赚一笔 前置知识&#xff1a; 基本的 python 编程知识Jupyter Notebook 使用过Linux 使用过 先上源码…

Wallpaper Engine使用视频壁纸黑屏解决方法(window10)

1.点击电脑左下角开始键>设置>搜索框搜索图形设置 2.浏览>找到wallpaper engine相关程序添加 3.将三个的选项改成节能 4.如果软件还在运行&#xff0c;重新启动

WebView2 通过 PuppeteerSharp 实现爬取 王者 壁纸 (案例版)

王者壁纸自动化获取逻辑分析 其实它的逻辑很简单&#xff0c; 就是王者的官网&#xff0c;打开后&#xff0c;在右下角就看到了皮肤页面部分。 这个时候&#xff0c;点击更多&#xff0c;就会打开全部英雄详情的页面。 这个时候&#xff0c;单点任意一个英雄&#xff0c;就会…

微信小程序短视频去水印,王者查战力,手持弹幕,获取头像壁纸,工具箱源码

短视频在线去水印,无任何广告 王者荣耀查荣耀战力已更新 新增加查看历史上的今天 新增手持弹幕&#xff0c;修复剪辑视频不能保存问题。 新增壁纸&#xff0c;头像&#xff0c;网址转二维码。 【微信小程序】&#xff1a;好野工具 【小程序版本】&#xff1a;5.1.1 【小…

王者壁纸批量爬取

语言&#xff1a;python json格式网站&#xff1a; 爬取网址&#xff1a;王者荣耀壁纸下载-王者荣耀官方网站-腾讯游戏 思路分析&#xff1a; 分析下一页&#xff0c;发现下一页之后是在当前页面的局部重新加载 当然排除可以直接爬取目标url获取当前页面的信息以及后面的所…

C语言案例 阶乘求和-12

题目&#xff1a;求1 2&#xff01;3&#xff01; … 20&#xff01;的和。 程序分析 阶乘相关原理&#xff1a;一个正整数的阶乘是所有小于及等于该数的正整数的积&#xff0c;并且0的阶乘为1。自然数n的阶乘写作n!&#xff0c;任何大于1的自然数n阶乘表示方法&#xff1a;…

5大电脑软件推荐!每一款都是精心挑选,良心推荐!

说起实用的电脑软件&#xff0c;我想你看对地方了&#xff0c;世上最棒最实用的电脑软件推荐&#xff01;每一款都十足良心&#xff01; 是时候表演真正的技术了&#xff01; 1.PotPlayer 超受欢迎的播放器之一。这款播放器可能会成为你的菜&#xff0c;内存占用低并且不卡&a…

Windows上有哪些推荐的笔记软件?

说实话&#xff0c;windows上的优秀的笔记软件没有ipad上多&#xff0c;在ipad上的notability、goodnotes、marginnote等优秀的笔记软件&#xff0c;在windows上很少有可替代的产品&#xff0c;不过在windows上也有一些比较优质的笔记软件&#xff0c;对于学生来说&#xff0c;…

3款强大到离谱的电脑软件,个个提效神器,从此远离加班

推荐3款让你偷懒&#xff0c;让你上头的提效电脑软件&#xff0c;个个功能强大&#xff0c;让你远离加班&#xff01; 很多几个小时才能做好的事情&#xff0c;用上它们&#xff0c;只需要5分钟就行&#xff01;&#xff01; 1、Quicker —— 桌面快速启动工具 Quicker鼠标效…

这几款好用的电脑软件推荐给你

软件一&#xff1a;potplayer PotPlayer是一款免费的媒体播放器&#xff0c;它支持多种格式的音频和视频文件。它的界面简洁而且易于使用&#xff0c;让用户可以轻松地播放各种媒体文件。以下是PotPlayer的一些主要功能&#xff1a; 支持多种格式&#xff1a;PotPlayer支持多…

5款超级无敌好用的电脑软件 建议收藏!

1.Quicker Quicker绝对要吹爆&#xff0c;Quicker可以给常用的软件和操作建立捷径&#xff0c;鼠标中键调出快捷面板使用&#xff0c;将常用操作放在手边&#xff0c;绝对的生产力工具&#xff0c;节省大量时间。 支持自定义动作&#xff0c;内置丰富的动作库&#xff0c;可…

电脑推荐软件

个人推荐电脑软件&#xff0c;如需自取。附下载链接&#xff1a; 电脑推荐软件: https://url46.ctfile.com/d/42812846-54181981-4b3214?p7872 (访问密码: 7872) 1、Everything 文件搜索器&#xff0c;快速找出电脑里面所有文件&#xff0c;支持关键字查找。 下载链接&#xf…

3.1 Spring MVC概述

1. MVC概念 MVC是一种编程思想&#xff0c;它将应用分为模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;、控制器&#xff08;Controller&#xff09;三个层次&#xff0c;这三部分以最低的耦合进行协同工作&#xff0c;从而提高应用的可扩展性及可维护…