做安卓開發也有段時間了,一直看那些大神的部落格,一直在學習。這是第一次寫部落格,請多多指教。
廢話不多說,上圖
寫這篇文章主要是記錄一下自己做專案時遇到的一些問題,當時寫這個功能的時候,也是在網上搜尋了不少關於這個功能的文字找資料,但是就沒有乙個符合我需求的。經過我自己的學習整合,總算把這個功能給搞定了。應該有很多小夥伴也遇到過類似的需求吧!讓我們開始吧!
獲取到的資料順序有不確定的因素!就要對資料進行一下排序,首先根據資料裡的名稱轉換成字母。
/**
* 第乙個字取全拼,後面的字取首字母
* @param cnstr
* @return 返回轉換後的拼
*/public static string getfirstspell(string cnstr)
char chars = cnstr.tochararray();
stringbuffer retubuf = new stringbuffer();
for (int i = 0, len = chars.length; i < len; i++)
else
else
else }}
} // end of for
return retubuf.tostring();
}
轉換完之後根據返回值,對資料進行擷取並轉成大寫,在判斷首字母是字母還是特殊符合進行儲存。
string substring = firstspell.substring(0, 1).touppercase();
if (substring.matches("[a-z]")) else
這會新增集合的資料還是比較混亂的,沒有按照字母進行排序,接著就要用到collection來進行排序。
/**
* 排序類
* //@標籤代表a前面的那些,#代表除了a-z以外的其他標籤
* created by tian on 16-1-9.
*/public class comparesort implements comparator
//user1屬於#標籤,放到後面
else if(!user1.getletter().matches("[a-z]+"))else if(!user2.getletter().matches("[a-z]+"))else }}
顯示資料的時候還要對資料進行判斷設定是否選中,我這裡是根據傳過來的選中集合來進行判斷
public void setdata() else }}
public boolean iscontains(hashmapuser)
}return false;
}
在adapter getview設定值的時候還要對當前資料進行遍歷
/**
* 順序遍歷所有元素.找到position對應的title是什麼(a,b,c?)然後找這個title下的第乙個item對應的position
** @param position
* @return
*/private int getfirstletterposition(int position)
}return -1;
}
Android 仿釘釘 微信 群聊組合頭像
可使用資源id bitmap或者使用url從網路載入,傳入對應陣列即可 網路載入時支援執行緒池 支援磁碟快取 記憶體快取。記得申請磁碟快取需要的檔案儲存許可權 對資源進行取樣率壓縮 step 1.新增jitpack倉庫在專案根目錄下的build.gradle中新增倉庫 allprojects ste...
下個版本企業微信的群聊中可直接發起騰訊會議了
techweb 11月3日訊息,在騰訊數字生態大會現場,騰訊公司副總裁 雲與智慧型產業coo兼騰訊雲總裁邱躍鵬透露,騰訊會議的使用者數接近2億。過去一年,使用者的參會次數超過40億。今年,騰訊會議進一步與騰訊文件 企業微信等應用深度協同。在企業微信的下乙個版本中,使用者可以直接在企微的群聊中發起騰訊...
Python微信群聊打卡回覆
所需庫 import itchat import time我的itchat庫是用pycharm安裝了十幾次才裝上的,有的時候會裝不上,這個我知道,沒辦法,多裝幾次就好了,中間總會連線超時中斷。原理 當群內這幾個人都發過言,打過卡,程式就會給指定的群和人發訊息 import itchat import...