如何獲得android手機通訊錄的字母顯示 兩)

2021-09-07 02:46:21 字數 2157 閱讀 9811

隨後的寫如何使各第一字母顯示相同的分類觸點:

於adapter implement sectionindexer

這項adapter必須在下面可以實現3介面:

@override

public object getsections()

@override

public int getpositionforsection(int section)

@override

public int getsectionforposition(int position)

所以我們必須把取到的本地聯絡人的資料進行加工

定義乙個來儲存section的資訊:

private class sectiontitle

public string tostring()

}

定義下面結構來獲取實現sectionindexer所要的資訊:

private sectiontitle msections = null;

private sparseintarray msectionpositionmap = null;

private sparseintarray mpositionsectionmap = null;

msections = sectiondatas;

} public void changedata(sparseintarray sectionpositionmap, sparseintarray positionsectionmap)

@override

public object getsections()

/*** 找出這個section相應的position

*/@override

public int getpositionforsection(int section)

/*** 找出這個position相應的section

*/@override

public int getsectionforposition(int position)

/*** @param position

* @return

*/public boolean issection(int position)

public string getsection(int position)

} 在adapter裡面我們過載changecursor(每次cursor改變都會呼叫)這種方法。進行加工,取出資料的首字母資訊

@override

public void changecursor(cursor c)

private void processcursor(cursor c)

if (c == null || c.getcount() == 0 || c.isclosed())

string curtitle = "";

int i = 0;

int position = 0;

while (c.movetonext())

positionsectionmap.put(position, i - 1);

}for(; i < msectiondatas.length; i++)

}

在adapter的初始化裡面:

protected final class contactsadapter extends resourcecursoradapter implements sectionindexer,onscrolllistener 

}

@override

public object getsections()

@override

public int getpositionforsection(int section)

@override

public int getsectionforposition(int position)

效果圖:

android 獲得手機資訊

android中與 功能相關的類是 telephonymanager 此類中定義了很多常量,以下分類說明 獲取以下資訊需要在androidmanifest.xml中指定許可權 一 資料連線狀態 獲取資料連線狀態 int getdatastate 獲取資料活動狀態 int getdataactivit...

Android問答 如何獲得手機螢幕解析度?

android問答 如何獲得手機螢幕解析度?這個問題並不複雜,但是問的人實在很多,所以還是集中回答一下。從android 3.2 api level 13 開始,在activity裡使用下面的方法來獲取螢幕解析度 單位是畫素 display display getwindowmanager getd...

Android問答 如何獲得手機螢幕解析度?

這個問題並不複雜,但是問的人實在很多,所以還是集中回答一下。從android 3.2 api level 13 開始,在activity裡使用下面的方法來獲取螢幕解析度 單位是畫素 display display getwindowmanager getdefaultdisplay activity...