2013-04-19 23 views
5

Kullanıcıların telefon listesinden Kişiler listesinden, uygulamanın içindeki bir Liste görünümünde göstermeye çalışıyorum. Kişileri getirebiliyorum ama bazı Kişiler çok sayıda cep telefonu numarasına sahip olacak, böylece o kişiye çok sayıda kez göstermek istiyorum.Android Uygulamaya Kişileri Getir

Bir kullanıcı sayısını sahip olduğu sayıda görüntülemek istediğinizde. Hatta 10 haneli uzun sadece cep telefonu numaraları dayanarak kısa liste mümkün olacak mı? Kodun aşağıdaki telefon numaraları ile tüm kişileri alıp bu

List<PhoneItem> phoneNoList = new ArrayList<PhoneItem(); 
Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
String name, number = ""; 
String id; 
c.moveToFirst(); 
for (int i = 0; i < c.getCount(); i++) { 
    name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
    id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); 

    if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
     Cursor pCur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id }, 
       null); 
     while (pCur.moveToNext()) { 
      phoneNoList.add(new PhoneItem(name, pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)))); 
     } 
    } 
    c.moveToNext(); 


} 

for (PhoneItem row : phoneNoList) { 
    Log.i("name", row.name); 
    Log.i("number", row.number+""); 
} 

[...] 

private class PhoneItem { 
    String name; 
    String phone; 

    public PhoneItem(String name, String phone) { 
     this.name = name; 
     this.phone = phone; 
    } 
} 
+0

Sorunuz nedir? – mach

+0

@mach Bir kullanıcıyı, sahip olduğu sayıların sayısı kadar görüntülemek. Hatta 10 haneli uzun sadece cep telefonu numaraları dayanarak kısa liste mümkün olacak mı? –

+0

Bir ExpandableListView kullanmak ve sayıları alt öğeler olarak kullanmak istemiyor musunuz? – mach

cevap

2

Şöyledir olarak

Example 

Name: John Doe 
Number 1: xxxxxxxxx 
Number 2: xxxxxxxxx 

Name: Sarah 
Number 1: xxxxxxxxx 

Bu üç liste öğeleri olması dönmelidir. Aynı kişi aynı gruba ait olabileceğinden yinelenebilir. Yinelemeli ve yinelemek zorundasın.

String[] projection = new String[]{ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, 
            ContactsContract.CommonDataKinds.Phone.NUMBER,}; 
String selection = ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER + "=?" ; 
String[] selectionArgs = new String[] {"1"};        
Cursor c = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
            projection, 
            selection, 
            selectionArgs, 
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME 
            + ", " + ContactsContract.CommonDataKinds.Phone.NUMBER); 
1

gibi bir şey deneyebilirsiniz

John Doe xxxxxxxxx 
John Doe xxxxxxxxx 
Sarah  xxxxxxxxx 
İlgili konular