Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-ArrayList.contains无法正常工作_Android_Arraylist_Contains - Fatal编程技术网

Android-ArrayList.contains无法正常工作

Android-ArrayList.contains无法正常工作,android,arraylist,contains,Android,Arraylist,Contains,有一个对象的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.set

有一个对象的
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”,我正在从列表中设置Label对象, 出于某种原因,它进入了第一个if语句中,即带有mStartCallLabels和mNeedToRemoveLabels的语句

下图包含刚刚进入if的DebugMode断点。。您可以看到该数组列表中不存在“label”对象。。“标签”的“标题”字符串值完全不同! 我做错了什么

mStartCallLabels.size==3,mNeedToRemoveLabels.size==0

所以基本上,出于某种原因

mStartCallLabels.contains(label)
返回true。。不应该!知道原因吗


据我所知,标签是你们的班级。当您在
ArrayList
上调用
contains
时,在将对象与列表中的对象进行比较时,它实际上调用了
equals
。请确保您的
equals
方法为这些标签返回false