1. 程式人生 > >android 特殊符號開頭的聯系人歸並至“#”下

android 特殊符號開頭的聯系人歸並至“#”下

cts ras class package src 版本 vid 版本號 fas

在PeopleActivity界面。聯系人的顯示位置是由其display name的第一個字符決定的。


數字開頭的聯系人會顯示在“#”這個header下。


中英文聯系人會顯示在“A” 到“Z”下。
以符號開頭的聯系人則沒有相應的header。顯示在最頂部。怎樣改動已讓它們顯示在‘#’號下?
以下的方法能夠將其顯示在“#”以下(適用於一般ASCII編碼內的符號)


JB版本號:
ContactsProvider2.java (packages\providers\contactsprovider\src\com\android\providers\contacts)
getFastScrollingIndexExtras函數中例如以下語句:
if (title == null) {
title = "";
}
改動為: if (title == null) {
title = "#";
}

KK版本號:
ContactLocaleUtils.java (alps\packages\providers\contactsprovider\src\com\android\providers\contacts)
改動
ContactLocaleUtilsBase內部類
public int getBucketLabel(String name) {
改動下面代碼

final int bucket = mAlphabeticIndex.getBucketIndex(name);
if (bucket < 0) {
return -1;
}
// add
if (bucket == 0) {
return mNumberBucketIndex; // 返回mNumberBucketIndex是放在#裏面。假設想放在#號後面,return mNumberBucketIndex+1
}
// add end
if (bucket >= mNumberBucketIndex) {
return bucket + 1;
}
return bucket;

android 特殊符號開頭的聯系人歸並至“#”下