我的应用程序的一部分我需要一个列表,当选择该选项时显示所有联系人(包括电话号码)。Android联系人 - 检索到的Android联系人,如何将它们放在一个简单的ListView中?
这里是按下按钮时,这就是所谓的活动:
package com.example.prototype01;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
public class nominateContactsActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.nominatecontactslayout);
Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
String contactName, contactTelNumber = "";
String contactID;
c.moveToFirst();
for (int i = 0; i < c.getCount(); i++) {
contactName = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
contactID = 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[] { contactID },null);
while (pCur.moveToNext()) {
contactTelNumber = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
}
Log.i("name ", contactName + " ");
Log.i("number ", contactTelNumber + " ");
c.moveToNext();
}
}
}
正如你所看到的,这个代码返回存储在手机上的所有联系人的姓名和电话号码。目前,这些只是回应logcat。我似乎无法解决如何在列表视图中列出这些项目,而只显示名称和编号。我已经跟随了几个教程无济于事,所以我很不情愿地寻求你的协助。我很不情愿地说,因为我确信这个问题已经被多次解答,我似乎无法将解决方案应用到我的代码中!
预先感谢您!
亲切的问候, Antwan
是不是推荐使用CursorLoaders,或者在这种情况下不适用? – aamit915 2012-08-12 22:07:02
@ aamit915 CursorLoaders已添加到API 11中,并且它们在某种程度上包含在向后兼容性库中。但是,如果作者只想在API 11之前的设备上运行它,则不是必需的。 – Sam 2012-08-12 22:11:30
好的谢谢澄清。 – aamit915 2012-08-12 23:41:03