笔记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 条评论
登录 后参与评论

相关文章

来自专栏Ceph对象存储方案

Luminous版本PG 分布调优

Luminous版本开始新增的balancer模块在PG分布优化方面效果非常明显,操作也非常简便,强烈推荐各位在集群上线之前进行这一操作,能够极大的提升整个集群...

3255
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

7148
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2626
来自专栏我和未来有约会

Silverlight第三方控件专题

这里我收集整理了目前网上silverlight第三方控件的专题,若果有所遗漏请告知我一下。 名称 简介 截图 telerik 商 RadC...

4055
来自专栏陈仁松博客

ASP.NET Core 'Microsoft.Win32.Registry' 错误修复

今天在发布Asp.net Core应用到Azure的时候出现错误InvalidOperationException: Cannot find compilati...

4878
来自专栏跟着阿笨一起玩NET

c#实现打印功能

2902
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2627
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2232
来自专栏落花落雨不落叶

canvas画简单电路图

65111
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2727

扫码关注云+社区