要求用户选择联系人,然后能够在以后查找该联系人的信息?

时间:2012-11-29 04:34:47

标签: java android android-contacts

我正在制作一个应用程序,要求现有联系人,然后为该联系人保留某种标识符,最后能够在以后查找该联系人的信息(具体来说,名称和图片)。

我有选择意图:

Intent contactIntent = new Intent(Intent.ACTION_PICK,
                    ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(contactIntent, 5);

结果:

public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
    case (pickCode):
        if (resultCode == RESULT_OK) {
            Uri contactData = data.getData();

但我迷失在这里。如何“标记”此联系人,以便我以后可以使用它?

一旦我这样做,我如何获得联系人图片?虽然我可能会想到这一点,但如果有一些简单的方法可以挂钩到第一部分,那就太好了。

1 个答案:

答案 0 :(得分:2)

您可以将此联系人uri存储在SharedPreferences中以供日后使用或在其他组件之间共享:

将SharedPreferences创建为:

 SharedPreferences myPrefs = this.getSharedPreferences("myPrefs",
                                             MODE_WORLD_READABLE);
 SharedPreferences.Editor prefsEditor = myPrefs.edit();
 prefsEditor.putString("contact_uri", contactData.toString());
 prefsEditor.commit();

以及稍后从SharedPreferences中检索uri:

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs",
                                               MODE_WORLD_READABLE);
 String contact_uri = myPrefs.getString("contact_uri", "not found");
 Uri contactData = Uri.parse(contact_uri);