0

如果我要为联系人的字段分配值,例如昵称;

.withValue(Nickname.NAME, "Mr. Incredible")

它根据http://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Nickname.html存储在 DATA1 列中

然而,如果我使用 SipAddress.SIP_ADDRESS() 添加一个 SIP 地址,它的值也会分配给 DATA1 列。我如何区分这两者?我对如何访问联系人特定字段有点困惑,我在 Android 参考中找不到解释。

我专门用

SimpleCursorAdapter(getActivity(),
                        R.layout.contact_list, null, new String[] {
                        SipAddress.DISPLAY_NAME, SipAddress.SIP_ADDRESS, Nickname.NAME},
                        new int[] {
                        R.id.text1, R.id.text2, R.id.text3}, 0);
4

2 回答 2

1

请试试,

try {
    Cursor cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
                    new String[]{ContactsContract.Data.DISPLAY_NAME},
                    ContactsContract.CommonDataKinds.Nickname.DATA1 + "=" + text, null, null);

    cursor.moveToFirst();
    String Nickname = cursor.getString(0);
}
catch (Exception e) {
}
于 2013-05-15T21:31:37.450 回答
0

是的,它ContactsContract.DataColumns.DATA1 与 String 一起保存SIP_ADDRESS。希望这可以帮助您ContactsContract.CommonDataKinds.SipAddress

快乐编码!

于 2013-05-15T20:52:21.417 回答