如何把额外的信息来的ArrayList它用于ListView中不显示附加信息

问题描述 投票:0回答:2

我做了读取我的所有联系人的活动,并把名字变成一个ArrayList。此ArrayList是用来填补我的ListView。如果我要在这ListView的一个项目单击该应用程序会在我的名字中搜索联系人,并把姓名和号码通过intent.putExtra开始活动。聊天存储有tinyDB(https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo/blob/master/TinyDB.java),其取PHONENUMBER作为键。

所有工作正常,但一个场景打破了这个概念。如果我有多个电话号码一个联系,我会在ListView点击他我的代码将搜索的名称在我的联系人,并采取这个数字开始聊天。所以聊天会与我的代码将首先发现每一次接触的电话号码开始。所以这是不可能先从第二个电话号码的聊天活动。

所以我想我应该把电话号码输入到ArrayList的太多,但那么他们将在ListView露面。

一些建议?

java android arraylist android-listview
2个回答
0
投票

你有几个坏的假设存在的,注意以下几点:

  1. 接触可能有零个,一个或多个电话,你需要处理所有3个案件。
  2. 联系人姓名是不是唯一的,你可能有2个或更多的“约翰”在您的联系人列表。
  3. 电话号码可以存储一个以上的接触中(以为是夫妻之间共享的家庭电话号码的)

当周围的搜索关键字通过你的不同活动之间,你必须使用准确确定所选择的项目,如联系人-ID,还是在列表中的位置的唯一标识符。

在你的主目录两个选项浮现在脑海中:要么不显示每个联系人的每部手机的列表项的,或点击一个联系人,它有一个以上的电话时,显示一个AlertDialog要求用户选择要使用的手机。


0
投票

如果你正在聊天应用这个答案可能会有所帮助。

how do apps like whatsapp show contacts that are only using app

为了保持它的简单,你可以做到这一点使用异步了解更多关于异步这里取背景的联系人。

Async Task

正常化可以使用googlelibphoneLib这样做的数量。

Google Lib Phone Number

并且将它们保存在SQLite的。

© www.soinside.com 2019 - 2024. All rights reserved.