我正在尝试从联系人列表中选择一个电话号码。一切正常,但我正在存储电话号码。我想存储一个指向电话号码的指针,以便在更改时获得新号码。
我想我应该只存储我在 onActivityResult 中返回的 Uri,但我不确定它到底指向什么。
文档说 startActivityForResult() * “返回所选行的内容 URI。URI 的形式是表的内容 URI,并附加了行的 LOOKUP_ID。”*
谁能给我指一个文档,或者解释一下这个 Uri 是什么?除了存储此 uri 然后再次进行查询之外,存储指向电话号码的指针是否有更好的方法?
顺便说一句,我可能只存储两者并在联系人数据库上实现一个侦听器,并且仅在数据库已更新时才重新查询。
我使用联系人选择器来选择联系人;
Intent pickContactIntent = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);
然后在选择它之后,我使用这样的方式获得电话号码:
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == android.app.Activity.RESULT_OK) {
Uri contactUri = data.getData();
Cursor cursor = contentResolver.query(contactUri,null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int columnPhone = cursor.getColumnIndex(Phone.NUMBER);
String number = cursor.getString(columnPhone);
}
}
}
}