52群聊的完成
来源:互联网 发布:jdk 6u45 windows x86 编辑:程序博客网 时间:2024/04/28 01:31
1.从服务器获取所有的群列表,并设置adapter:
grouplist = EMGroupManager.getInstance().getAllGroups();groupListView = (ListView) findViewById(R.id.list);groupAdapter = new GroupAdapter(this, 1, grouplist);groupListView.setAdapter(groupAdapter);
2.onItemClickListener的实现,一是创建新的群聊,而是进入聊天界面,这里携带的有参数:
groupListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {if (position == groupAdapter.getCount() - 1) {// 新建群聊startActivityForResult(new Intent(GroupsActivity.this,NewGroupActivity.class), 0);} else {Intent intent = new Intent(GroupsActivity.this,ChatActivity.class);intent.putExtra("chatType", ChatActivity.CHATTYPE_GROUP);intent.putExtra("groupId",groupAdapter.getItem(position - 1).getGroupId());startActivityForResult(intent, 0);}}});
3.ListView的触摸事件,在onTouchListener中隐藏软键盘,隐藏软键盘必须得到相应的服务:
inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
groupListView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {if (getCurrentFocus() != null) {inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);}}return false;}});
4.按钮的点击事件,获取公开的群列表和加入公开的群:
/** * 进入公开群聊列表 */public void onPublicGroups(View view) {startActivity(new Intent(this, PublicGroupsActivity.class));}
完整的代码:
package com.dystu.impro.activity;import java.util.List;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.WindowManager;import android.view.inputmethod.InputMethodManager;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import com.dystu.impro.R;import com.dystu.impro.adapter.GroupAdapter;import com.easemob.chat.EMGroup;import com.easemob.chat.EMGroupManager;public class GroupsActivity extends BaseActivity {public static GroupsActivity instance;private ListView groupListView;protected List<EMGroup> grouplist;private GroupAdapter groupAdapter;private InputMethodManager inputMethodManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_groups);instance = this;inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);grouplist = EMGroupManager.getInstance().getAllGroups();groupListView = (ListView) findViewById(R.id.list);groupAdapter = new GroupAdapter(this, 1, grouplist);groupListView.setAdapter(groupAdapter);groupListView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {if (position == groupAdapter.getCount() - 1) {// 新建群聊startActivityForResult(new Intent(GroupsActivity.this,NewGroupActivity.class), 0);} else {Intent intent = new Intent(GroupsActivity.this,ChatActivity.class);intent.putExtra("chatType", ChatActivity.CHATTYPE_GROUP);intent.putExtra("groupId",groupAdapter.getItem(position - 1).getGroupId());startActivityForResult(intent, 0);}}});groupListView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {if (getWindow().getAttributes().softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) {if (getCurrentFocus() != null) {inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);}}return false;}});}/** * 进入公开群聊列表 */public void onPublicGroups(View view) {startActivity(new Intent(this, PublicGroupsActivity.class));}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {grouplist = EMGroupManager.getInstance().getAllGroups();super.onActivityResult(requestCode, resultCode, data);}@Overrideprotected void onResume() {super.onResume();groupAdapter = new GroupAdapter(this, 1, grouplist);groupListView.setAdapter(groupAdapter);groupAdapter.notifyDataSetChanged();}@Overrideprotected void onDestroy() {super.onDestroy();instance = null;}/** * 返回 * * @param view */public void back(View view) {finish();}}
0 0
- 52群聊的完成
- 10新建群聊布局的完成
- 53新建群聊布局的完成
- 54新建群聊逻辑的完成
- 12新建群聊的完成二---选择联系人的布局完成
- 11新建群聊逻辑的完成一
- 57新建群聊---选择联系人逻辑的完成
- 完成dhtmlxtree的彻底完成
- 完成为完成的遗憾
- 67群组简单详情的完成
- IRP的同步完成与异步完成
- 如何完成看似不可能完成的任务
- IRP的同步完成与异步完成
- 完成MyJFrame的基本功能
- 自动完成的实现
- 待完成的工作。
- 完成端口的原理
- 完成端口的原理
- leetcode 174: Dungeon Game
- C指针专题2
- HTML5简明教程-1.1.5.HTML5Canvas参考手册 之 放射渐变 createRadialGradient
- 归并排序、希尔排序、插入排序、快速排序-绝对的高效优化的代码
- HTK数据准备工具-HCopy
- 52群聊的完成
- 黑马程序员训练营基础测试
- web.xml配置详解
- HeadFirstJava学习——对象的序列化和文件的保存
- [Salesforce] Call REST from Apex
- microsoft office 2007 excel、word、ppt 向程序发送命令时失败 解决方案
- 53新建群聊布局的完成
- [易飞9.0]颜色管理设置
- 【POJ1637】Sightseeing tour 混合图求欧拉回路存在性 网络流、