无法从列表中删除对象

时间:2012-12-09 09:38:07

标签: java android list

我有一个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);
             }
         }
     }

});

1 个答案:

答案 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))