网友通过本文主要向大家介绍了硅谷社交,硅谷群瞎传,硅谷群瞎传第四季,硅谷群瞎传第一季,硅谷群瞎传第二季等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
硅谷社交15--群详情,硅谷社交15--
1)页面布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"> <com.hyphenate.easeui.widget.EaseTitleBar app:titleBarTitle="群详情" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.hyphenate.easeui.widget.EaseTitleBar> <GridView android:id="@+id/gv_group_detail" android:layout_width="match_parent" android:numColumns="4" android:horizontalSpacing="10dp" android:verticalSpacing="10dp" android:layout_weight="1" android:layout_height="0dp"> </GridView> <Button android:id="@+id/bt_group_detail" android:text="退群" android:textSize="25sp" android:layout_margin="5dp" android:textColor="@android:color/white" android:background="@android:color/holo_red_light" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
群主群详情.png
删除模式群详情.png
群成员群详情.png
2)获取传递过来的数据
// 获取传递过来的参数 private void getData() { // 获取传递过来的群id String groupId = getIntent().getStringExtra(Constant.GROUP_ID); // 校验 if (groupId == null) { finish(); return; } else { // 获取群信息 mGroup = EMClient.getInstance().groupManager().getGroup(groupId); } }
3)初始化button按钮的显示
// 初始化按钮的显示 private void initButtonDisplay() { //显示 // 判断是否是群主 if (EMClient.getInstance().getCurrentUser().equals(mGroup.getOwner())) { // 更新显示 btn_exit_group.setText("解散群"); // 解散群的点击事件 btn_exit_group.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Model.getInstace().getGolbalThreadPool().execute(new Runnable() { @Override public void run() { // 联网 try { // 联网成功 EMClient.getInstance().groupManager().destroyGroup(mGroup.getGroupId()); // 发送解散群广播 exitGroupBroadCast(); // 提示 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(GroupDetailActivity.this, "解散群成功", Toast.LENGTH_SHORT).show(); // 销毁当前页面 finish(); } }); } catch (HyphenateException e) { e.printStackTrace(); // 提示 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(GroupDetailActivity.this, "解散群失败", Toast.LENGTH_SHORT).show(); } }); } } }); } }); } else {// 群成员 btn_exit_group.setText("退群"); // 退群按钮点击事件 btn_exit_group.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 联网 Model.getInstace().getGolbalThreadPool().execute(new Runnable() { @Override public void run() { try { EMClient.getInstance().groupManager().leaveGroup(mGroup.getGroupId()); // 发送广播 exitGroupBroadCast(); // 提示 runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(GroupDetailActivity.this, "退群成功", Toast.LENGTH_SHORT).show(); // 销毁当前页面 finish(); } }); } catch (HyphenateException e) { e.printStackTrace(); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(GroupDetailActivity.this, "退群失败", Toast.LENGTH_SHORT).show(); } }); } } }); } }); } }
4)退群和解散群
发送退群广播
// 解散群和退群广播 private void exitGroupBroadCast() { // 发送广播 Intent intent = new Intent(Constant.EXIT_GROUP); // 传递群id参数 intent.putExtra(Constant.GROUP_ID, mGroup.getGroupId()); // 发送 mLBM.sendBroadcast(intent); }
5)初始化Gridview
// 初始化gridview private void initGridview() { // 你是群主 或者 你这个群是公开 你就可以添加和删除群成员 boolean mIsCanModify = EMClient.getInstance().getCurrentUser().equals(mGroup.getOwner()) || mGroup.isPublic(); // 创建适配器 mGroupDetailAdapter = new GroupDetailAdapter(GroupDetailActivity.this, mIsCanModify, mOnGroupDetailListener); // 添加到gridview gv_member_list.setAdapter(mGroupDetailAdapter); }
6)GridView适配器
public class GroupDetailAdapter extends BaseAdapter { private Context mContext; private boolean mIsCanModify; // 表示可以添加和删除好友 private boolean mIsDeleteModel; // 是否是删除模式 true:删除模式 false:非删除模式 private List<UserInfo> mUsers = new ArrayList<>(); private OnGroupDetailListener mOnGroupDetailListener; private final String mCurrentUser; public GroupDetailAdapter(Context context, boolean isCanModify, OnGroupDetailListener onGroupDetailListener) { mContext = context; mIsCanModify = isCanModify; mOnGroupDetailListener = onGroupDetailListener; mCurrentUser = EMClient.getInstance().getCurrentUser(); } private void initUsers() { UserInfo add = new UserInfo("add"); UserInfo delete = new UserInfo("delete"); mUsers.add(delete); mUsers.add(0, add); } // 刷新的方法 public void refresh(List<UserInfo> users) { // 校验 if (users != null && users.size() >= 0) { mUsers.clear(); initUsers(); mUsers.addAll(0, users); } // 刷新页面 notifyDataSetChanged(); } // 获取当前的模式 public boolean ismIsDeleteModel() { return mIsDeleteModel; } // 设置当前的模式 public void setmIsDeleteModel(boolean mIsDeleteModel) { this.mIsDeleteModel = mIsDeleteModel; } @Override public int getCount() { return mUsers == null ? 0 : mUsers.size(); } @Override public Object getItem(int position) { return mUsers.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // 创建或获取viewHolder ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = View.inflate(mContext, R.layout.item_group_detail, null); holder.photo = (ImageView) convertView.findViewById(R.id.iv_member_photo); holder.name = (TextView) convertView.findViewById(R.id.tv_member_name); holder.delete = (ImageView) convertView.findViewById(R.id.iv_member_delete); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); if (position != getCount() - 1 && position != getCount() - 2) { if (holder.name.getVisibility() == View.INVISIBLE) { holder = new ViewHolder(); convertView = View.inflate(mContext, R.layout.item_group_detail, null); holder.photo = (ImageView) convertView.findViewById(R.id.iv_member_photo); holder.name = (TextView) convertView.findViewById(R.id.tv_mem