笔记72 | 将姓放在名的后面,排序按姓氏首字母排列的修改笔记

需求

更改之前

更改之后

分析

只看“ A”皇阿玛 “,在我的电话簿中A”是姓,皇阿玛是名,需求是将名显示在前,姓在后,排列顺序要按姓来排列。 之前是直接修改 switch_name_x的返回字符 returnrecord.get(i).getGivenName()+" "+record.get(i).getFamilyName();强制完成姓名调换,后来测试组反馈说排序没有按姓氏排,而是按照名的首字母排,赶紧查阅代码,发现之前电话簿是按照“姓+名”的组合字符的首字母进行排列,想想,那么只要在排列的方法中只对姓式的首字母进行排列即可,于是就修改了以下代码就完成需求!

修改

修改之前的主要代码:

private ArrayList<HashMap<String, String>> mPBList;private List<SortModel> SourceDateList;HashMap<String, String> map = new HashMap<String, String>();                    map.put("item_phonebook_name", getString(R.string.bt_notsupport_download_phonebook));                    map.put("item_phonebook_number", "");                    mPBList.add(map);                SourceDateList= filledData(mPBList);                                Collections.sort(SourceDateList, pinyinComparator);                mAdapter.notifyDataSetChanged();    for (int i = 0; i < record.size(); i++) {                            HashMap<String, String> map = new HashMap<String, String>();                                                    map.put("item_phonebook_name",switch_name_x(record,i));                            map.put("item_phonebook_number", record.get(i).getNumber());                            mPBList.add(map);                        }private List<SortModel> filledData(ArrayList<HashMap<String, String>> phoneList){            List<SortModel> mSortList = new ArrayList<SortModel>();            if(phoneList.size()==0)return mSortList;            for(int i=0; i<phoneList.size(); i++){                SortModel sortModel = new SortModel();                sortModel.setName(phoneList.get(i).get("item_phonebook_name").trim());                sortModel.setPhoneName(phoneList.get(i).get("item_phonebook_number").trim()); String pinyin = characterParser.getSelling(phoneList.get(i).get("item_phonebook_name").trim());                if(pinyin==null||pinyin.length()==0)pinyin="unknow";                String sortString = pinyin.substring(0, 1).toUpperCase();                if(sortString.matches("[A-Z]")){                    sortModel.setSortLetters(sortString.toUpperCase());                }else{                    sortModel.setSortLetters("#");                }                mSortList.add(sortModel);            }            return mSortList;        }        public String switch_name_x(List<PBRecord> record,int i)        {           return record.get(i).getFamilyName() + " " + record.get(i).getGivenName();        }

修改之后的代码(其中只修改了 filledDataswitch_name_x方法):

        private List<SortModel> filledData(ArrayList<HashMap<String, String>> phoneList){            List<SortModel> mSortList = new ArrayList<SortModel>();            if(phoneList.size()==0)return mSortList;            for(int i=0; i<phoneList.size(); i++){                SortModel sortModel = new SortModel();                sortModel.setName(phoneList.get(i).get("item_phonebook_name").trim());                sortModel.setPhoneName(phoneList.get(i).get("item_phonebook_number").trim());                String pinyin = characterParser.getSelling(record_test.get(i).getFamilyName()).trim();                if(pinyin==null||pinyin.length()==0)pinyin="unknow";                String sortString = pinyin.substring(0, 1).toUpperCase();                if(sortString.matches("[A-Z]")){                    sortModel.setSortLetters(sortString.toUpperCase());                }else{                    sortModel.setSortLetters("#");                }                mSortList.add(sortModel);            }            return mSortList;        }                    List<PBRecord> record_test = new ArrayList<PBRecord>();        public String switch_name_x(List<PBRecord> record,int i)        {            record_test = record;            return record.get(i).getGivenName()+" "+ record.get(i).getFamilyName();        }}

原文发布于微信公众号 - 项勇(xiangy_life)

原文发表时间:2018-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏锦小年的博客

python学习笔记2.2-print函数以及格式化输出

上一节已经安装好运行环境以及各种库,接下来就要开始正式编程了。与国际接轨,接触一门语言的第一次编程,一定是在屏幕上打印“hello world”。python...

1965
来自专栏TungHsu

这或许是对小白最友好的python入门了吧——18,定义函数

有的时候我们写的代码往往是一个功能组合,并且这组代码可能会很复杂,但是我们在写代码的时候可能会多次用到这组代码,每次都写这么多代码浪费时间并且检查、修改起来也很...

3287
来自专栏Golang语言社区

Golang语言--slice 切片原理

golang 中的 slice 非常强大,让数组操作非常方便高效。在开发中不定长度表示的数组全部都是 slice 。但是很多同学对slice 的模糊认识,造成认...

3629
来自专栏androidBlog

笔试题—字符串常见的算法题集锦

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

471
来自专栏专知

关关的刷题日记12——Leetcode 189. Rotate Array 方法1、2、3

关小刷刷题12 – Leetcode 189. Rotate Array 方法1、2、3 题目 Rotate an array of n elements to...

3498
来自专栏calmound

Set Matrix Zeroes

问题:将数组中的某个值为0的元素所在行和列的其他值都为0 分析;遍历数组找到某一值为0然后遍历他的上下左右直到边界,要用while而不能用搜索,因为搜索过去新节...

3325
来自专栏C/C++基础

C++接口继承与实现继承的区别和选择

《Effective C++》条款三十四:区分接口继承和实现继承中介绍的比较啰嗦,概括地说需要理解三点: (1)纯虚函数只提供接口继承,但可以被实现; ...

631
来自专栏Golang语言社区

Go 语言简介(上)— 语法

Hello World package main //声明本文件的package名 import "fmt" //import语言的fmt库——用于输出 f...

3548
来自专栏禹都一只猫博客

GO 语言简介 — 语法

下面的文章主要是以代码和注释为主。只需要你对C语言,Unix,Python有一点基础,我相信你会在30分钟左右读完并对Go语言有一些初步了解的。

751
来自专栏WindCoder

JSON中关于对双向关联的支持

本文原文:Bidirectional Relationship Support in JSON

972

扫码关注云+社区