【发布时间】:2015-10-04 20:04:44
【问题描述】:
有一个ArrayList 的对象,我正在检查列表是否包含 if 语句中的对象,并且该数组不包含该对象。然而它仍然在 if 语句中..
@Override
public void onBindViewHolder(final LabelViewHolder feedListRowHolder, int i) {
final Label label = mLabels.get(i);
//find the views and bind the data
feedListRowHolder.checkBox.setText(label.getCaption());
if (mStartCallLabels.contains(label) && !mNeedToRemoveLabels.contains(label)) {
feedListRowHolder.checkBox.setChecked(true);
} else if (mNeedToAddLabels.contains(label)) {
feedListRowHolder.checkBox.setChecked(true);
} else {
feedListRowHolder.checkBox.setChecked(false);
}
上面的代码显示了我的适配器的“getView”,我正在从列表中设置标签对象, 由于某种原因,它进入了第一个 if 语句,即带有 mStartCallLabels 和 mNeedToRemoveLabels 的语句。
下面的图片包含 DebugMode 断点,它刚刚进入 if.. 你可以看到该数组列表中不存在 "label" 对象.. "label" 的 "caption" 字符串值完全不同的! 我做错了什么?
mStartCallLabels.size == 3,mNeedToRemoveLabels.size == 0。
所以基本上,出于某种原因,
mStartCallLabels.contains(label)
返回 true.. 它不应该!有什么想法吗?
【问题讨论】:
标签: android arraylist contains