【发布时间】:2016-02-20 22:37:33
【问题描述】:
我正在加载电话的联系人列表以与 AutoCompleteTextView 一起使用,我想通过测试显示电话类型(工作、家庭等),但现在我只是返回数字类型 ID(1、2、3 )
我如何获得名称:这是下面的代码 - 感谢所有帮助。
static final String[] CONTACTS_SUMMARY_PROJECTION = new String[]
{
ContactsContract.CommonDataKinds.Phone._ID,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE
};
public Loader<Cursor> onCreateLoader(int id, Bundle args)
{
try
{
String SELECTION = "((" + ContactsContract.Contacts.DISPLAY_NAME + " NOTNULL) AND ("
+ ContactsContract.Contacts.DISPLAY_NAME + " != '' )" + "AND (" + ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1))";
// + ContactsContract.Contacts.DISPLAY_NAME + " like 'p%' )" + "AND ("+ContactsContract.Contacts.HAS_PHONE_NUMBER +"=1))";
if (mSelection.length() > 0) {
SELECTION = "((" + ContactsContract.Contacts.DISPLAY_NAME + " NOTNULL) AND ("
+ ContactsContract.Contacts.DISPLAY_NAME + " like '" + mSelection + "%' )" + "AND (" + ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1))";
}
return new CursorLoader(this, ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
CONTACTS_SUMMARY_PROJECTION, SELECTION, null,
" DISPLAY_NAME ASC");
}
catch(Exception e)
{
Log.d(TAG, "onCreateLoader:Exception:" + R.string.Exception + ":" + e.getMessage());
}
return null;
}
//光标适配器是这样设置的:
mAdapter = new SimpleCursorAdapter(this, R.layout.contactview, null,
new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE},
new int[]{R.id.ccontName, R.id.ccontNo, R.id.ccontType}, 0);
mTxtPhoneNo.setAdapter(mAdapter);
【问题讨论】:
-
听起来您可能正在获取 id #(如果这是正确的名称)。您是否尝试过附加
.getString(), getLong()等。使用光标,我已经使用过您按照csr(<index>>).getString();的方式执行某些操作,其中 index 是从 0 开始的数字偏移量。
标签: android