android通訊錄字母
『壹』 android 聯系人頭像取首漢子的首字母怎麼做
在android 4.4.3上面,聯系人的頭像默認顯示首字母,但是不支持中文字元
如果聯系人名字的第一位是英文字元(a-z "| A-Z),則默認頭像將顯示該首字母。
如果支持中文時顯示第一個漢字,那就happy了。
那就看看如何通過修改源代碼來實現這一小功能吧~
我們還是先了解下聯系人頭像載入的流程吧~
聯系人頭像載入這個問題還是很有意思的,在Contacts中使用ContactPhotoManager類(嚴格來講是這個類的子類)來實現頭像的非同步載入。
這個類還使用了LruCache來緩存圖片,相當的強大,對圖像的非同步載入和緩存有興趣的同志們可以看看。
以主頁面的聯系人列表載入頭像為例。大致的調用流程為(只針對沒有設置頭像的聯系人,即photoUri是null):
DefaultContactListAdapter->bindView()
ContactEntryListAdapter->buildQuickContact()
ContactEntryListAdapter->()
ContactPhotoManagerImpl->loadPhoto()->provider: // 注意,使用的是DEFAULT_AVATAR對象
->applyDefaultImage()
->getDefaultImageForContact()
LetterTileDrawable->drawLetterTile()->firsr char:高
在drawLetterTile函數執行drawText之前會調用isEnglishLetter來判斷字元串的首字元是否為英文字元,如果是,則將首字母畫上去
『貳』 安卓或者華為手機常用聯系人的排序規則是如何規定的
常用聯系人是根據第一個字的字母排序的,你可以在想要經常的聯系人姓名前加一個a,就到最上面了
『叄』 華為手機通訊錄英文名稱順序
聯系人排序,是按照首字的拼音的首字母,或者按照英文的首字母。
按照英文26個字母順序排列的。這是系統設置如此,自己沒辦法更改規則。
當然,既然知道是按照首字的首字母排序,那麼完全可以在喜歡排在前列的聯系人名字之前加a-z字母,就可以自己按照喜歡的序列排列了。
『肆』 手機的通訊錄的文件夾 英文名一般是什麼保存在哪個文件夾里路徑
1、如未設置保存至SIM卡,則保存在系統分區的文件夾下(具體文件夾名稱視不同機型而定)。
2、簡訊以資料庫形式保存在系統分區的某一文件夾下,在未獲取ROOT許可權的情況無法查看,獲取ROOT許可權後可通過具有查看系統文件夾功能的文件管理器查看相關文件,但通常該部分數據無法直接查看簡訊內容。
『伍』 求android讀取通訊錄並按字母排序demo
如果只是排序,很簡單。採用java自帶的Collections.sort(***,***)方法。代碼可以這樣寫:
List list =new ArrayList();
//Test是你的聯系人實體。假設聯系人的姓名是name,並且實體里有個方法getName(),返回的是聯系人的名字
//然後對list賦值
Collections.sort(list,new Comparator(){
@Override
public int compare(Test lhs, Test rhs){
return (lhs.getName().compateTo(rhs.getName())); //這個是升序。把此行lhs和rhs互換,就是降序了。
}
}
『陸』 安卓手機系統語言設置成英文之後,通訊錄裡面就無法安裝字母查找了 這是為什麼
安卓手機系統語言設置成英文之後,通訊錄裡面就無法按照字母查找了的原因是有二:
第一,按照字母查找遵循的是漢語拼音的拼寫規則,而英文系統下的通訊錄,遵循的是英語語法的拼寫規則。
例如,中文胡天龍,漢語拼音是hu tianlong,變成英文後,系統內出現的漢字是亂碼,根本無從查找。
第二,某些安卓系統手機的操作系統版本偏低,語言設置變成英文後,不再支持按照字母查找的功能。5.0以上的安卓操作系統(國內銷售手機),即使從語言設置變成了中文,也是可以繼續使用按字母查找功能的(實測機型為紅米Note2)。
『柒』 如何獲取android手機聯系人並按字母展示
android提供了本地資料庫的查詢uri,可以查詢出數據:
採用一個AsyncQueryHandler來進行查詢, AsyncQueryHandler自己開啟了線程來進行數據查詢,很方便
protected AsyncQueryHandler mQueryHandler;
protected final void queryPersonal() {
mQueryHandler.startQuery(QUERY_TOKEN, null, ContactsContract.Contacts.CONTENT_URI,
Personal.CONTACTS_SUMMARY_PROJECTION, null, null, getSortOrder(ContactsContract.Contacts.DISPLAY_NAME));
}
protected static String getSortOrder(String fieldName) {
//substr為截取函數,取第一個字母
//COLLATE主要用於對字元進行排
//COLLATE LOCALIZED 按本地語言進行排序
return "CASE WHEN substr(UPPER(" + fieldName + "), 1, 1) BETWEEN 'A' AND 'Z' THEN 1 else 10 END," +
fieldName + " COLLATE LOCALIZED ASC";
}
protected final class MyHandler extends AsyncQueryHandler {
/**
* Asynchronous query handler constructor.
*/
public MyHandler(Context context) {
super(context.getContentResolver());
}
/**
* On query completion.
*/
@Override
protected void onQueryComplete(int token, Object cookie, Cursor cursor) { //handler查詢完的回調
if (cursor == null || cursor.isClosed()) {
return;
}
if (!isFinishing()) {
setLoading(false);
if (mAdapter != null) {
mAdapter.setLoading(false);
mAdapter.changeCursor(cursor);
}
if (cursor.getCount() == 0) {
mEmtytext.setVisibility(View.VISIBLE);
} else {
mEmtytext.setVisibility(View.INVISIBLE);
}
} else {
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
}
}
『捌』 android 實現微信通訊錄(聯系人分類,並有邊欄字母滑動效果,並可以查詢聯系人) 源代碼
多編譯一下別人的包包
『玖』 手機通訊錄怎麼讓 它字母分開管理
在設置裡面。一般情況下,你打開通訊錄,然後在你的通訊錄設置里,你可以將你的通訊錄設置為按字母排序,然後你的手機通訊錄就是按字母分開的。
還有一種方法就是,你首先在你的手機上下載一個應用寶軟體,然後在應用寶裡面下載一個通訊錄,應用寶裡面的通訊錄都是按字母分開管理的。希望你用的開心。還有別的軟體你在應用寶里也可以找到
『拾』 android通訊錄欄位sort_key_primary要多出一個"z"怎麼去掉啊。
view plain to clipboardprint?
if (displayNameStyle == FullNameStyle.CHINESE ||
displayNameStyle == FullNameStyle.CJK) {
sortKeyPrimary = sortKeyAlternative =
ContactLocaleUtils.getIntanc).getSortKe(displayNamePrimary, displayNameStyle);}
if (displayNameStyle == FullNameStyle.CHINESE || displayNameStyle == FullNameStyle.CJK) { sortKeyPrimary = sortKeyAlternative = ContactLocaleUtils.getIntanc).getSortKe(displayNamePrimary, displayNameStyle);}
這段代碼是運行在contactsprovi2.Java的updateRawContactDisplayName()方法裡面,這段代碼我們用到了ContactLocaleUtils.java這個類,所以我們進入它以後最顯眼的就是ChineseContactUtils這個ContactLocaleUtils的子類,它重寫了ContactLocaleUtils的getSortKey()方法,如下:
view plain to clipboardprint?
public String getSortKey(String displayName) {