我有一个gridview,当点击一个项目时。它将迭代一个列表,它应该在匹配字符串时从列表中删除一个对象。这是我的代码到目前为止,但它不起作用。我不知道出了什么问题。请帮助。
gridView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
{
String sel_id = list2.get(arg2).stud_id.toString();
for(int i=0; i<late_list.size(); i++)
{
if(late_list.get(i).stud_id.toString() == sel_id.toString())
{
late_list.remove(i);
}
}
}
});
答案 0 :(得分:3)
请勿将字符串与==
进行比较,请使用equals()
==
检查操作数是否引用相同的对象实例(仅检查基本类型的相同值)
equals()
检查相同的对象内容(对于覆盖equals
方法的类,String
肯定会这样做。
因此,您的if
条件必须
if (late_list.get(i).stud_id.toString().equals(sel_id))
此外,您无需像toString()
String
对象上拨打sel_id
如果您的stud_id
也是String
,也可以写
if (late_list.get(i).stud_id.equals(sel_id))