• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 硅谷社交12--群列表页面,硅谷社交12--列表

硅谷社交12--群列表页面,硅谷社交12--列表

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了硅谷社交,硅谷群瞎传,硅谷群瞎传第四季,硅谷群瞎传第一季,硅谷群瞎传第二季等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

硅谷社交12--群列表页面,硅谷社交12--列表


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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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>

    <ListView
        android:id="@+id/lv_grouplist"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

    </ListView>
</LinearLayout>

2)Listview添加头布局

// 获取头布局view
View headerView = View.inflate(GroupListActivity.this, R.layout.header_group_list, null);
// 添加头布局view
lv_group_list.addHeaderView(headerView);

3)Listview初始化

// 创建适配器
mGroupListAdapter = new GroupListAdapter(GroupListActivity.this);
// 将适配器添加到listview中
lv_group_list.setAdapter(mGroupListAdapter);

4)Listview适配器

public class GroupListAdapter extends BaseAdapter {
    private Context mContext;
    private List<EMGroup> mEMGroups = new ArrayList<>();

    public GroupListAdapter(Context context) {
        mContext = context;
    }

    // 刷新方法
    public void refresh(List<EMGroup> eMGroups){
        if(eMGroups != null && eMGroups.size() >= 0) {
            // 加载数据
            mEMGroups.clear();
            mEMGroups.addAll(eMGroups);
            // 通知刷新页面
            notifyDataSetChanged();
        }
    }

    @Override
    public int getCount() {
        return mEMGroups == null? 0:mEMGroups.size();
    }

    @Override
    public Object getItem(int position) {
        return mEMGroups.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // 创建或获取viewhoder
        ViewHolder holder = null; 
        if(convertView == null) {
            holder = new ViewHolder();
            convertView = View.inflate(mContext, R.layout.item_group_list, null);
            holder.tv_name = (TextView) convertView.findViewById(R.id.tv_group_list_name);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        // 获取当前item数据
        EMGroup emGroup = mEMGroups.get(position);
        // 显示数据
        holder.tv_name.setText(emGroup.getGroupName());
        // 返回convertview
        return convertView;
    }

    static class  ViewHolder{
        TextView tv_name;
    }
}

5)从环信服务器获取群组联系人信息

// 联网获取群信息
private void getGroupFromHxServier() {
	Model.getInstace().getGolbalThreadPool().execute(new Runnable() {
		@Override
		public void run() {
			try {
				// 联网获取群信息
				EMClient.getInstance().groupManager().getJoinedGroupsFromServer();

				runOnUiThread(new Runnable() {
					@Override
					public void run() {
						Toast.makeText(GroupListActivity.this, "加载群信息成功", Toast.LENGTH_SHORT).show();
						// 刷新显示
						mGroupListAdapter.refresh(EMClient.getInstance().groupManager().getAllGroups());
					}
				});
			} catch (HyphenateException e) {
				e.printStackTrace();
				runOnUiThread(new Runnable() {
					@Override
					public void run() {
						Toast.makeText(GroupListActivity.this, "加载群信息失败", Toast.LENGTH_SHORT).show();
					}
				});

			}
		}
	});
}

6)Listview刷新页面

// 刷新显示
mGroupListAdapter.refresh(EMClient.getInstance().groupManager().getAllGroups());

7)群列表条目的点击事件

// 群列表的点击事件
lv_group_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

		// 跳转到聊天页面
		Intent intent = new Intent(GroupListActivity.this, ChatActivity.class);

		// 获取群id
		String groupId = EMClient.getInstance().groupManager().getAllGroups().get(position - 1).getGroupId();
		intent.putExtra(EaseConstant.EXTRA_USER_ID, groupId);

		// 保存群聊天类型
		intent.putExtra(EaseConstant.EXTRA_CHAT_TYPE, EaseConstant.CHATTYPE_GROUP);

		startActivity(intent);
	}
});

8)创建新群的点击监听

// 群组条目的点击事件
ll_group_list.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		// 跳转到新建群页面
		Intent intent = new Intent(GroupListActivity.this, NewGroupActivity.class);

		startActivity(intent);
	}
});

9)页面可见时刷新页面

@Override
protected void onResume() {
	super.onResume();
	// 刷新页面
	mGroupListAdapter.refresh(EMClient.getInstance().groupManager().getAllGroups());
}

  

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 硅谷社交15--群详情,硅谷社交15--
  • 硅谷社交10--会话详情页面,硅谷社交10--会话
  • 硅谷社交12--群列表页面,硅谷社交12--列表
  • 硅谷社交14--选择联系人页面,硅谷社交14--联系人
  • 硅谷社交8--联系人列表页面,硅谷社交8--联系人
  • 硅谷社交6--添加联系人--发送添加好友邀请,硅谷6--
  • 硅谷社交7--添加联系人--接收添加好友邀请,硅谷7--
  • 硅谷社交2--欢迎页面,硅谷社交2--
  • 硅谷社交3--登录页面,硅谷社交3--

相关文章

  • 2017-05-26精品干货丨APP常用导航框架,干货丨app导航
  • 2017-05-26android 图片加载库 Glide 的使用介绍,
  • 2017-05-26listview下拉刷新和上拉加载更多的多种实现方案,listview下拉
  • 2017-05-26数据分析与挖掘
  • 2017-05-262016年Android市场的8个大胆预测,2016年android
  • 2017-05-26ubuntu下ssh的应用
  • 2017-05-26Android自定义控件
  • 2017-05-26Linux内核系列—C语言中内嵌汇编 asm __volatile__,asm__volatile_
  • 2017-05-222.3.5.RadioButton(单选按钮)&Checkbox(复选框)
  • 2017-05-26android shareSDK实现第三方分享,androidsharesdk

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • android 管理wifi,androidwifi
    • Android 指纹认证,android指纹认证
    • Android中事件的分发机制
    • 安开发卓之Notification(一)代码直接能用,安开发notification
    • Loader加载器,loader加载
    • 4.3.1 BroadcastReceiver牛刀小试
    • [android] 手机卫士绑定sim卡,androidsim
    • Android属性动画
    • android:QQ多种侧滑菜单的实现
    • Smalidea+IntelliJ IDEA/Android Studio动态调试安卓app教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有