5

連絡先リストの見栄えの良いレイアウトを見つけました: 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 で文字列リストとして取得する方法です。

4

2 に答える 2

0

マニフェストで以下の許可を宣言しましたか? そうでない場合は、それを宣言してください。

  <uses-permission android:name="android.permission.READ_CONTACTS" />
于 2013-10-15T13:05:21.223 に答える