仿微信發起群聊

2021-08-21 09:04:25 字數 1856 閱讀 3581

做安卓開發也有段時間了,一直看那些大神的部落格,一直在學習。這是第一次寫部落格,請多多指教。

廢話不多說,上圖

寫這篇文章主要是記錄一下自己做專案時遇到的一些問題,當時寫這個功能的時候,也是在網上搜尋了不少關於這個功能的文字找資料,但是就沒有乙個符合我需求的。經過我自己的學習整合,總算把這個功能給搞定了。應該有很多小夥伴也遇到過類似的需求吧!讓我們開始吧!

獲取到的資料順序有不確定的因素!就要對資料進行一下排序,首先根據資料裡的名稱轉換成字母。

/**

* 第乙個字取全拼,後面的字取首字母

* @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...