• 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 > 硅谷社交14--选择联系人页面,硅谷社交14--联系人

硅谷社交14--选择联系人页面,硅谷社交14--联系人

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

网友通过本文主要向大家介绍了硅谷社交,硅谷,硅谷亮城写字楼,济南硅谷培训学校,尚硅谷官网等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

硅谷社交14--选择联系人页面,硅谷社交14--联系人


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"
    android:orientation="vertical"
>
    <RelativeLayout
        android:background="@android:color/holo_blue_light"
        android:layout_width="match_parent"
        android:layout_height="60dp">

        <TextView
            android:text="选择联系人"
            android:textSize="25sp"
            android:textColor="@android:color/white"
            android:layout_centerInParent="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/tv_pick_save"
            android:text="保存"
            android:textSize="25sp"
            android:textColor="@android:color/white"
            android:layout_alignParentRight="true"
            android:gravity="center"
            android:layout_marginRight="5dp"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />
    </RelativeLayout>

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

    </ListView>

</LinearLayout>

2)获取好友列表

// 获取所有联系人的数据
List<UserInfo> contacts = Model.getInstace().getDbManager().getContactTableDao().getContacts();
mPicks = new ArrayList<>();
// 校验
if(contacts != null && contacts.size() >= 0) {
	// 将联系人信息转换为选择联系人bean信息
	PickContactInfo pickContactInfo = null;
	for (UserInfo contact: contacts){
		pickContactInfo = new PickContactInfo(contact, false);
		mPicks.add(pickContactInfo);
	}
}

3)初始化listview

// 创建适配器
mPickContactsAdapter = new PickContactsAdapter(PickContactsActivity.this, mPicks, mExistingMembers);
// 添加适配器
lv_pick_contacts.setAdapter(mPickContactsAdapter);

4)Listview适配器

public class PickContactsAdapter extends BaseAdapter {
    private Context mContext;
    private List<PickContactInfo> mPicks = new ArrayList<>();
    private List<String> mExistingMembers  = new ArrayList<>();


    public PickContactsAdapter(Context context , List<PickContactInfo> picks,List<String> existingMembers) {
        mContext = context;

        if(picks != null && picks.size() >= 0) {
            mPicks.clear();
            mPicks.addAll(picks);
        }

        // 接受群中已经存在的群成员的环信id
        if(existingMembers != null && existingMembers.size() >=0 ) {
            mExistingMembers.clear();
            mExistingMembers.addAll(existingMembers);
        }
    }

    // 获取选中的联系人
    public List<String> getAddMembers(){
        // 准备一个要返回的数据集合
        List<String> names = new ArrayList<>();

        // 遍历集合 选择出选中状态的联系人
        for (PickContactInfo pick: mPicks){

            if(pick.isChecked()) {
                names.add(pick.getUser().getName());
            }
        }

        return names;
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // 创建或获取viewholder
        ViewHolder holder  = null;
        if(convertView == null) {
            holder = new ViewHolder();
            convertView = View.inflate(mContext, R.layout.item_pick_contacts, null);
            holder.tv_name = (TextView) convertView.findViewById(R.id.tv_item_pick_contacts_name);
            holder.cb_checked = (CheckBox) convertView.findViewById(R.id.cb_item_pick_contacts);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }
        // 获取当前item数据
        PickContactInfo pickContactInfo = mPicks.get(position);

        // 显示数据
        holder.tv_name.setText(pickContactInfo.getUser().getName());
        holder.cb_checked.setChecked(pickContactInfo.isChecked());

        if(mExistingMembers.contains(pickContactInfo.getUser().getHxId())) {
            holder.cb_checked.setChecked(true);
            pickContactInfo.setIsChecked(true);
        }

        // 返回view

        return convertView;
    }

    static class ViewHolder{
        TextView tv_name;
        CheckBox cb_checked;
    }
}


5)Listview条目的点击事件

// listView团队item点击事件处理
lv_pick_contacts.setOnItemClickListener(new AdapterView.OnItemClickListener() {
	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
		//  获取当前item的checkbox对象
		CheckBox cb_item_pick_contacts = (CheckBox) view.findViewById(R.id.cb_item_pick_contacts);
		// 设置状态
		cb_item_pick_contacts.setChecked(!cb_item_pick_contacts.isChecked());
//                cb_item_pick_contacts.toggle();
		// 更新数据
		PickContactInfo pickContactInfo = mPicks.get(position);
		pickContactInfo.setIsChecked(cb_item_pick_contacts.isChecked());
		// 刷新列表数据
		mPickContactsAdapter.notifyDataSetChanged();
	}
});


6)保存按钮点击事件

// 保存按钮的点击监听处理
tv_pick_contacts_save.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		// 获取被选择的联系人
		List<String> addMembers = mPickContactsAdapter.getAddMembers();
		// 设置数据准备返回创建群页面
		Intent intent = new Intent();
		intent.putExtra("members", addMembers.toArray(new String[0]));
		setResult(RESULT_OK, intent);
		// 结束当前页面
		finish();
	}
});

  

 

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

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

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

相关文章

  • 2017-05-26安卓客户端a标签长按弹框提示解决办法,安卓标签
  • 2017-05-26Android5 Zygote 与 SystemServer 启动流程分析
  • 2017-05-26Android百度地图API集成三《搜索》,android《搜索》
  • 2017-05-26Android 手机卫士11--窗体弹出PopupWindow,11--popupwindow
  • 2017-05-26安卓开源项目周报0222,安卓开源项目0222
  • 2017-05-26Android 面试题--Service,android--service
  • 2017-05-26「视频直播技术详解」系列之七:直播云 SDK 性能测试模型,sdk性能测试
  • 2017-05-26android fragment生命周期应用
  • 2017-05-26npm源切换,npm源
  • 2017-05-26Android—基于微信开放平台v3SDK,开发微信支付填坑。,androidv3sdk

文章分类

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

最近更新的内容

    • 关于使用底部菜单栏的使用。。。,使用底部菜单栏..
    • 仿微信新消息提示音,消息
    • Android开发:自动开关机实现教程
    • Android--BroadcastReceiver应用详解
    • Android开发学习之路--RxAndroid之初体验
    • Android第五天--&gt;创建自定义控件,android第五天
    • 谈谈Android中的Divider,AndroidDivider
    • Android学习笔记(34):Android菜单
    • 基于android-async-http的android服务,android-async-http
    • ScrollView中嵌套GridView,ListView只显示一行的解决办法,scrollviewgridview

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

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