通讯录字母检索功能源码

本文介绍了一种在网络请求返回数据后,为每个数据项添加字母索引的方法,以便于实现快速的字母检索功能。通过给每条数据添加一个index属性,并对其进行排序,可以有效地避免滑动时因找不到标记而导致的崩溃问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期开发需要一个字母检功能,网上找了一个然后进行了修改,现在整理出来分享给大家


一般的例子都会是静态数据,这样不会出现什么问题,但是一旦网络请求回来就会发现可能会有问题,我遇到的问题是网络请求回来之后并没有给每天数据添加标记,因此每次滑动的时候因为找不到标记而崩溃

因此需要在请求回来的数据添加一个标记

private void getDate() {
    SharedHelper sharedHelper;
    sharedHelper = new SharedHelper(MyApplication.getInstance());
    ServerApi.queryUserByOrgAndRole(sharedHelper.getUser().getOrgid(), "3,5").subscribe(new BaseSubscriber<List<PeopleBean>>() {
        @Override
        public void onNext(List<PeopleBean> value) {

            ArrayList<PeopleBean> peopleList = new ArrayList<PeopleBean>();
            for (PeopleBean person : value) {//给每条数据调价一个index
                person.setIndex(FirstLetterUtil.getFirstLetter(person.getRealname()));
                peopleList.add(person);
            }

            Collections.sort(peopleList, new LetterComparator());
            mContactModels.addAll(peopleList);
            mShowModels.addAll(mContactModels);
            mAdapter.notifyDataSetChanged();
        }
    });
}
下载地址     点击打开链接
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值