我做了读取我的所有联系人的活动,并把名字变成一个ArrayList。此ArrayList是用来填补我的ListView。如果我要在这ListView的一个项目单击该应用程序会在我的名字中搜索联系人,并把姓名和号码通过intent.putExtra开始活动。聊天存储有tinyDB(https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo/blob/master/TinyDB.java),其取PHONENUMBER作为键。
所有工作正常,但一个场景打破了这个概念。如果我有多个电话号码一个联系,我会在ListView点击他我的代码将搜索的名称在我的联系人,并采取这个数字开始聊天。所以聊天会与我的代码将首先发现每一次接触的电话号码开始。所以这是不可能先从第二个电话号码的聊天活动。
所以我想我应该把电话号码输入到ArrayList的太多,但那么他们将在ListView露面。
一些建议?
你有几个坏的假设存在的,注意以下几点:
当周围的搜索关键字通过你的不同活动之间,你必须使用准确确定所选择的项目,如联系人-ID,还是在列表中的位置的唯一标识符。
在你的主目录两个选项浮现在脑海中:要么不显示每个联系人的每部手机的列表项的,或点击一个联系人,它有一个以上的电话时,显示一个AlertDialog
要求用户选择要使用的手机。
如果你正在聊天应用这个答案可能会有所帮助。
how do apps like whatsapp show contacts that are only using app
为了保持它的简单,你可以做到这一点使用异步了解更多关于异步这里取背景的联系人。
正常化可以使用googlelibphoneLib这样做的数量。
并且将它们保存在SQLite的。