連絡先リストの見栄えの良いレイアウトを見つけました: https://github.com/thehung111/ContactListView
ただし、連絡先はハードコーディングされています。そのため、電話の連絡先を取得して、連絡先リストを埋める必要があります。
これが私が試したことです:
public class ExampleDataSource {
public static List<ContactItemInterface> getSampleContactList(){
List<ContactItemInterface> list = new ArrayList<ContactItemInterface> ();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] projection = new String[] {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER};
Cursor people = getContentResolver().query(uri, projection, null, null, null);
int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
people.moveToFirst();
do {
String name = people.getString(indexName);
String number = people.getString(indexNumber);
list.add(new ExampleContactItem(name , number ) );
} while (people.moveToNext());
/* Example inputs for contact list
list.add(new ExampleContactItem("Lizbeth" , "Lizbeth Crockett" ) );
list.add(new ExampleContactItem("Lizbeth" , "Lizbeth Crockett" ) );
list.add(new ExampleContactItem("Zachery" , "Zachery Loranger" ) );
list.add(new ExampleContactItem("Vada" , "Vada Winegar" ) );
list.add(new ExampleContactItem("Essie" , "Essie Pass" ) );
*/
return list;
}
}
getContentResolver() でエラーが発生し、クラスをアプリケーションなどに拡張しようとしましたが、これまでのところ運がありません。
したがって、主な問題は、名前と電話番号を含むリストを Android で文字列リストとして取得する方法です。