연락처 그룹 프로그래밍 방식으로 을 (를) 가져 오는 방법을 알려줄 수 있습니까?Android 연락처 그룹 이름에 액세스
8
A
답변
9
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID, ContactsContract.Groups.TITLE };
cursor = getContentResolver().query(
ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION, null,
null, ContactsContract.Groups.TITLE);
GlobalConfig.groupList.clear();
Group g = new Group();
g.GroupIdList += "0";
g.setGroupTitle("ALL");
GlobalConfig.groupList.add(g);
while (cursor.moveToNext()) {
String id = cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups._ID));
String gTitle = (cursor.getString(cursor
.getColumnIndex(ContactsContract.Groups.TITLE)));
if (gTitle.contains("Group:")) {
gTitle = gTitle.substring(gTitle.indexOf("Group:") + 6).trim();
}
if (gTitle.contains("Favorite_")) {
gTitle = "Favorites";
}
if (gTitle.contains("Starred in Android")
|| gTitle.contains("My Contacts")) {
continue;
}
Group gObj = new Group();
int pos = GlobalConfig.GroupContainsTitle(gTitle);
if (pos != -1) {
gObj = GlobalConfig.groupList.get(pos);
gObj.GroupIdList += "," + id;
GlobalConfig.groupList.set(pos, gObj);
} else {
gObj.GroupIdList += id;
gObj.setGroupTitle(gTitle);
GlobalConfig.groupList.add(gObj);
}
// Log.d("GrpId Title", gObj.getGroupIdList() +
// gObj.getGroupTitle());
}
5
@Abhi에 의한 대답은 좋아하지만, 몇 가지 한계가 있습니다이
- 삭제 목록이 표시됩니다 연락처를하는 삭제 되었어야하지만 여전히 변두리에있다)
-
private class GroupInfo {
String id;
String title;
@Override
public String toString() {
return title+ " ("+id+")";
}
public String getId() {
return id;
}
}
List<GroupInfo> groups = new ArrayList<GroupInfo>();
public void loadGroups() {
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID,
ContactsContract.Groups.TITLE,
ContactsContract.Groups.SUMMARY_WITH_PHONES
};
Cursor c = getContentResolver().query(
ContactsContract.Groups.CONTENT_SUMMARY_URI,
GROUP_PROJECTION,
ContactsContract.Groups.DELETED+"!='1' AND "+
ContactsContract.Groups.GROUP_VISIBLE+"!='0' "
,
null,
null);
final int IDX_ID = c.getColumnIndex(ContactsContract.Groups._ID);
final int IDX_TITLE = c.getColumnIndex(ContactsContract.Groups.TITLE);
Map<String,GroupInfo> m = new HashMap<String, GroupInfo>();
while (c.moveToNext()) {
GroupInfo g = new GroupInfo();
g.id = c.getString(IDX_ID);
g.title = c.getString(IDX_TITLE);
int users = c.getInt(c.getColumnIndex(ContactsContract.Groups.SUMMARY_WITH_PHONES));
if (users>0) {
// group with duplicate name?
GroupInfo g2 = m.get(g.title);
if (g2==null) {
m.put(g.title, g);
groups.add(g);
} else {
g2.id+=","+g.id;
}
}
}
c.close();
}
1
이전 과장 답변이 필요 없습니다. 훨씬 간단한 솔루션입니다.
final String[] GROUP_PROJECTION = new String[] {
ContactsContract.Groups._ID, ContactsContract.Groups.TITLE };
Cursor gC = getContentResolver().query(
ContactsContract.Groups.CONTENT_URI, GROUP_PROJECTION,null,null,null);
gC.moveToFirst();
while (!gC.isAfterLast()) {
int idcolumn = gC.getColumnIndex(ContactsContract.Groups.TITLE);
String Id = gC.getString(idcolumn);
ArrayL.add(Id);
gC.moveToNext();
}
LinkedHashSet<String> s = new LinkedHashSet<String>();
s.addAll(ArrayL);
ArrayL.clear();
ArrayL.addAll(s);
+0
Thanks mate! 이것은 더 간단한 것이다. – Darsh
+0
"ArrayL"은 어디에서 왔습니까? – retorquere
관련 문제
- 1. Android 2.0 연락처 그룹 조작
- 2. 리스트 그룹 회원 (연락처)?
- 3. Android ID로 연락처 그룹 가져 오기
- 4. Android : SMS 및 연락처 데이터 액세스
- 5. 주소록 연락처 그룹 가져 오기?
- 6. 연락처 이름 표시 (이름은 연락처 번호가 이름에 따라 다름)
- 7. 안드로이드 연락처 액세스
- 8. 연락처의 연락처 번호에 액세스
- 9. 연락처 데이터베이스에 연락처 쓰기 - Android 2.1
- 10. Android 연락처 추출
- 11. Android 2.1 전화 연락처
- 12. android 연락처 메뉴로 연결
- 13. Android 연락처 목록
- 14. Android 연락처 - 수정
- 15. Android : 연락처 목록 빨리보기
- 16. Android 연락처 만들기 신청서
- 17. Django : 그룹 이름에/bad 문자가 있습니다.
- 18. 연락처 그룹 표시 옵션을 프로그래밍 방식으로 설정하십시오.
- 19. WCF 인증 액세스 그룹
- 20. MS 액세스 그룹 개발
- 21. 로컬 변수 이름에 자바 액세스
- 22. NAnt에서 CruiseControl.NET 프로젝트 이름에 액세스
- 23. Android 연락처 application theme/style
- 24. Android 연락처 선택기 및 검색
- 25. Android 연락처 API에 전화하는 방법
- 26. 연락처 Android 1.5의 PhoneNumber 받기
- 27. Android 연락처 이미지 설정 문제
- 28. Android : 연락처 편집보기와 비슷한보기 편집
- 29. Android 연락처 검색어 중복 됨
- 30. Android - 특정 연락처 정보 표시
내 질문에 대한 완벽한 해결책입니다. 하지만, 여기에 나는 GlobalConfig 클래스의 사용법과 주어진 GroupContainsTitle을 저장하는 방법을 이해하지 못한다. @Abhishek은 GlobalConfig 클래스에 대해 더 자세히 설명 할 수 있습니다. 그것은 내 시간을 절약 할 것이다. – Prativa
@prativa GlobalConfig는 응용 프로그램 전체에서 액세스 할 수있는 정적 컬렉션을 저장하기 위해 여기에 사용되는 단순한 정적 클래스입니다. – Abhi
완벽! 같은 그룹을 더 얻게되는 이유는 무엇입니까? 예. 3 명의 동료와 2 명의 친구. – erdomester