我有 3 个数组列表。最终目标是将列表视图中的所有电话号码更改为联系人姓名。
fetchContactNumbers()返回我设备中所有电话号码 (31) 的列表。
fetchContactNames()返回我设备中所有联系人姓名 (31) 的列表。
newList中有 6 个电话号码。
我正在做的是根据 fetchContactNumbers() 的位置将 newList 中的数字更改为 fetchContactNames() 中的相应名称。因此,由于 fetchContactNumbers() 和 fetchContactNames() 的元素顺序正确,newList 将在 fetchContactNumbers() 中查找匹配项,索引该位置,然后使用 fetchContactnames() 中的该位置将 newList 中的数字设置为其代表名称。这是我为测试更清晰的图片而制作的示例:
作为控制台应用程序测试的示例:http: //pastebin.com/pApHNkXa
这是我活动中的代码:
// change displayed numbers into contact names
for(int i = 0; i < newList.size(); i++){
int index = fetchContactNumbers().indexOf(newList.get(i));
if(fetchContactNumbers().contains(newList.get(i))){
newList.set(i, this.fetchContactNames().get(index));
}
}
从那里,newList 被传递到我的 CustomAdapter 类中以填充我的列表视图。
上述代码的问题(根据我的示例是正确的)是当我在我的应用程序中运行它时,只有 newList.get(3) 更改为正确的名称。
有谁知道为什么只有一个名字在改变而不是全部?我检查了 logcat,它显示相同的东西,没有错误。