brs yazdı:Üstadım sizin örnek uygulamanız ve kendi uygulamamda test yaptım; Listviewe sadece mail adresi geliyor telefon veya numaraları listelemiyor bu durum neden olabilir? sizin örnek resimdeki görselde isim ve numaralar var.
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
LItem: TListViewItem;
Contacts: TAddressBookContacts;
begin
Contacts := TAddressBookContacts.Create;
with TelefonListView do
begin
AddressBook1.AllContacts(AddressBook1.DefaultSource, Contacts);
Items.Clear;
BeginUpdate;
try
for I := 0 to Contacts.Count - 1 do
begin
LItem := Items.Add;
LItem.Text := Contacts.Items[I].DisplayName;
LItem.Data[TMultiDetailAppearanceNames.Detail1] := Contacts.Items[I].FirstName;
LItem.Data[TMultiDetailAppearanceNames.Detail2] := Contacts.Items[I].Phones;
LItem.Data[TMultiDetailAppearanceNames.Detail3] := Contacts.Items[I].NickName;
end;
finally
EndUpdate;
Contacts.Free;
end;
end;
end;
Merhaba @brs Bey,
Kodunuzu test ettim.
DisplayName Alanı:
DisplayName alanı
ad+Soyad alanını gösterir. Fakat rehberde kişi kaydı oluşturulurken bu iki alanın boş olduğunda (bazen ön ad veya son ad alanlarına kayıt yapılabilir)
DisplayName alanı
Android platformunda
e-mail adresi,
iOS platformunda ise
şirket adını gösterilir.
Burdan da şu çıkar uygulamayı Android telefonda test ettiniz. (DisplayName alanı boş olduğu için e-mail adresi listeleniyor)
FirstName:
Adı alanıdır. Rehberinizde bir önceki alanda bilgi olmayışının sebebi
FirstName alanının boş olmasından kaynaklanıyor.
Yani rehberinizde İsim farklı bir alanda kayıtlı.
NickName:
Kişiyi daha iyi tanımlamak amacıyla kullanılan
özel bir isim alanıdır. Sosyal medyadan da bildiğiniz gibi..
örn: @brs
Kültürümüzde yaygın olmadığından bu alanın boş olma ihtimali de yüksektir.
son olarak
Phones alanından bahsedeyim.
Phones:
Bu alan
TContactPhone sınıfının dizi tipi olan
TContactPhones tipindedir. Temelde
Object List olarak tutulur. Dolayısıyla doğudan
Phones özelliği ile telefon bilgisine ulaşılamaz. Telefon bilgisini almak için
TContactPhones dizisi bir döngü ile kontrol edilerek bir kişiye ait tüm telefonlar listelenebilir.
Yada
Kod: Tümünü seç
LItem.Data[TMultiDetailAppearanceNames.Detail2] := Contacts.Items[I].Phones[0].Number;
şeklinde bir kod kullanarak, rehberde kişiye ait ilk telefon numarasını (Rehberde bir kişiye ait birden fazla telefon numarası kaydı oluşturulabiliyor) gösterebilirsiniz.
İyi çalışmalar..