0
我想告訴所有聯繫人列表視圖詳細信息(如顯示標題名稱,電話號碼&圖片)誰擁有一個手機號碼在我的移動聯繫人列表中。我已經獲得了標題名稱,電話號碼。我按照this線程來實現列表中的照片。但沒有成功。安卓:顯示來自聯繫人的URI列表中的所有聯繫方式的有電話號碼的
要獲得顯示標題名稱,電話號碼我使用以下方法。嘗試使用相同查詢獲取圖像時出現錯誤。我可以在一個查詢中得到所有內容嗎?
public static ArrayList<Person> getAllContactsWithPhoto(Context context) {
ArrayList<Person> allContacts = new ArrayList<Person>();
ContentResolver cr = context.getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur
.getColumnIndex(ContactsContract.Contacts._ID));
if (Integer
.parseInt(cur.getString(cur
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.Data.CONTACT_ID + " = ?",
new String[] { id }, null);
while (pCur.moveToNext()) {
// fill object data
Person aPerson = new Person();
aPerson.setName(pCur.getString(pCur
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)));
aPerson.setNumber(pCur.getString(pCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
// getting error in log cat.
Uri my_contact_Uri = Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_URI,
String.valueOf(id));
aPerson.setImage_Uri(my_contact_Uri);
Log.d(" Number List",
" " + aPerson.getName() + " "
+ aPerson.getNumber() + " "
+ aPerson.getImage_Uri());
allContacts.add(aPerson);
}
pCur.close();
}
}
}
return allContacts;
}
我的定義適配器ContactListAdapter getView()是這樣的:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_row, null);
convertView.setMinimumHeight(50);
holder.textViewContactName = (TextView) convertView
.findViewById(R.id.textview_contact_name);
holder.textView_Contact_Number = (TextView) convertView
.findViewById(R.id.textview_number);
holder.imgViewContactImage = (ImageView) convertView
.findViewById(R.id.imgViewContactImage);
convertView.setTag(holder);
} else
holder = (ViewHolder) convertView.getTag();
if (allContactsNumbers.size() <= 0) {
holder.textViewContactName.setText("No Data");
} else {
holder = (ViewHolder) convertView.getTag();
String name = allContactsNumbers.get(position).getName();
holder.textViewContactName.setText(name);
String number = allContactsNumbers.get(position).getNumber();
holder.textView_Contact_Number.setText(number);
Uri Uri = allContactsNumbers.get(position).getImage_Uri();
if (Uri != null) {
holder.imgViewContactImage.setImageURI(Uri);
} else {
holder.imgViewContactImage.setImageResource(R.id.useLogo);
}
Log.d("Contacts in Adapter", "" + name + "" + number);
}
return convertView;
}
我的Person類:
public class Person {
// has setter & getter
private String name;
private String phone_number;
private Uri image_uri; }
有人可以幫我解決這個問題?
http://stackoverflow.com/questions/16730064/get-android-contact - 電話號碼列表。檢查這是否有幫助和這個http://stackoverflow.com/questions/17256932/displaying-contact-number-and-contact-name-in-a-custom-list-view/17258014#17258014 – Raghunandan
@Raghunandan:wao。 .i可以獲得標題名稱和編號,但不會捕獲圖像以顯示在列表中:(該帖子不能幫助我更多 –