【问题标题】:Displaying contact details like android's native app显示联系人详细信息,例如 android 的本机应用程序
【发布时间】:2023-03-05 15:30:01
【问题描述】:

我正在制作一个在列表视图中显示人员列表的应用程序。点击后,应用程序应转换到另一个屏幕,显示从我从数据库中检索到的 Person 对象加载的该人的联系人详细信息。我的问题是如何显示这些细节。在 iOS 中,有一个 ABUnknownPersonViewController 可以模仿原生 iOS 通讯录条目,让我以简洁明了的方式显示联系人详细信息。 android 有什么类似的东西可以让我使用 People 应用程序的视图或 api 来创建和显示与 android 在其自己的 People 应用程序中显示的完全一样的记录?

【问题讨论】:

    标签: android


    【解决方案1】:

    您的确切答案包含在此处:

    Open Contacts

    上述链接中描述的方法打开本地联系人应用程序并让用户选择联系人。然后onActivityResult()就出来了,这里你可以根据你的要求处理联系人。

    如果您想自定义外观和感觉,您需要查看here

    您可以检索列表并自定义 UI。

    如果您只想显示单个联系人的详细信息。您可以使用此代码。 (contactId是用户选择的联系人的contactId)

    Intent contactIntent = new Intent(Intent.ACTION_VIEW);
    Uri uri = Uri.withAppendedPath(
    ContactsContract.Contacts.CONTENT_URI,
                        String.valueOf(contactId));
    contactIntent.setData(uri);
    startActivity(contactIntent);
    

    希望这会有所帮助。

    【讨论】:

    • 我认为您误解了这个问题...我不想向用户显示手机的联系人。用户从我显示的姓名列表中选择一个姓名,该姓名的联系人卡片将显示在应用程序中。这张名片的详细信息来自我的数据库。与手机或手机中的联系人无关
    • 您需要创建一个自定义布局,例如带有复选框的列表视图,然后使用项目表单数据库填充 lsitview。选中复选框时,从列表中检索项目并执行您想要的操作。这就是你要找的吗??
    • 如果是这种情况,那么我建议您打开第二个链接。它显示了如何获取所有联系人的列表。您可以在列表视图中仅显示联系人姓名。在 onItemSelectedListener() 中,您可以获得contactID 并使用它来打开特定的联系人详细信息页面。等等我会更新我的答案。
    • 添加代码以打开联系人详细信息屏幕。再次检查上述答案。
    • 联系方式并非来自 android 的 People 应用程序。它们来自我的数据库。我只需要知道我是否可以使用与 Android 人员应用程序相同的联系人详细信息页面样式来显示我的 OWN 数据。显然没有办法这样做......
    【解决方案2】:

    没有。您可以查看 AOSP 并查看联系人应用程序是否作为开源发布,如果是,请使用它。但请记住,所有手机上的联系人应用程序并不相同,例如三星使用自己的几个不同的应用程序。有些人下载自己的联系人应用程序。因此,除非您通过意图启动联系人应用程序,否则不可能让每个人都拥有原生的感觉。

    【讨论】:

      猜你喜欢
      • 2020-09-13
      • 2020-05-08
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多