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
原创粉丝点击