erhalten alle Arten von einem (einzigen) Kontaktalle Kontakte bekommen und alle Arten von Anzahl der Einzelkontaktnamen
im All Kontakt mit allen Arten von einem einzigen Kontakt bekommen und ich bekommt es gelungen Aber Wenn Druck innerlist (mehrfache Art Telefonnummer enthält) für entsprechend die Größe von innerlist für den einzelnen Kontakt zuletzt hinzugefügten Kontakt drucken ..... (nicht Beispiel gelesen hat)
Beispiel
für die Ex: Kontakt Name: ABC Typen Nummer 3 MOBILE: 123, HOME: 456, BüRO: 789 SO DASS DIESER CODE
for (int i = 0; i < numberlist.size(); i++) { Log.e("inner", numberlist.get(i).getName() + " number " + numberlist.get(i).getNumber()); }
Wird drucken (dreimal aber gleiche Kontaktnummer) (innere, ABC-Nummer 789) ;
pojo Klasse
public class ContactClass extends RealmObject {
@PrimaryKey
String id;
String name;
String number;
RealmList<ContactClass> numberlist;
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public ContactClass() {
}
public RealmList<ContactClass> getNumberlist() {
return numberlist;
}
public void setNumberlist(RealmList<ContactClass> numberlist) {
this.numberlist = numberlist;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Ergebnis will ich
Ich möchte Kontaktnamen und alle Arten von Zahlen dieses einzelnen Namen speichern ..
Code ich habe
public void loadContact() {
//swipeRefreshLayout.setRefreshing(true);
RealmList<ContactClass> list = new RealmList<>();
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
ContentResolver cr = getActivity().getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
RealmList<ContactClass> numberlist = new RealmList<>();
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
ContactClass contactClass = new ContactClass();
contactClass.setId(id);
contactClass.setName(name);
if (cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)) > 0) {
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
int type = pCur.getInt(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
// Log.e("called", phoneNo + " " + name + " " + id);
switch (type) {
case ContactsContract.CommonDataKinds.Phone.TYPE_HOME:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"home");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"mobile");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_WORK:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"work");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"eaxhome");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"faxwork");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_MAIN:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"main");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_OTHER:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo + " name " + name+" type "+"home");
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo);
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_PAGER:
try {
if (phoneNo.equals("") || phoneNo != null) {
contactClass.setNumber(phoneNo);
Log.e("test", phoneNo);
numberlist.add(contactClass);
}
} catch (Exception e) {
Log.d(TAG, e.toString());
}
break;
}
}
pCur.close();
/* HashSet<ContactClass> h = new HashSet<>();
h.addAll(numberlist);
numberlist.clear();
numberlist.addAll(h);*/
contactClass.setNumberlist(numberlist);
list.add(contactClass);
for (int i = 0; i < numberlist.size(); i++) {
Log.e("inner", numberlist.get(i).getName() + " number " + numberlist.get(i).getNumber());
}
}//1637
}
// saveToRealm(list);
/* try {
HashSet hs = new HashSet();
hs.addAll(list); // demoArrayList= name of arrayList from which u want to remove duplicates
List<ContactClass> classList = new ArrayList<>();
list.clear();
classList.addAll(hs);
saveToRealm(classList);
Log.e("resize", classList.size() + "");
} catch (Exception e) {
Log.d("savetorealm", "catch " + e.toString());
}*/
}
}
i meine Frage aktualisiert haben kann u plz ans davon? –