我正在尝试从联系人列表中选择一个电话号码。一切都很好,但我正在存储电话号码。我想存储一个指向电话号码的指针,这样如果它被更改,我会得到新号码。
我想我应该把我回来的Uri存放在onActivityResult上,但我不确定究竟是什么意思。
doc表示startActivityForResult()*"返回所选行的内容URI。 URI的形式是表的内容URI,其中附加了行的LOOKUP_ID。" *
有人能指出我的文件,或解释这个Uri是什么? 是否有更好的方法将指针存储到电话号码,而不是存储此uri然后再次查询?
顺便说一下,我可能只是存储两个并在contacts数据库上实现一个监听器,只有在数据库更新时才重新查询。
我使用联系人选择器选择联系人;
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);
}
}
}
}