0

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

});
4

1 回答 1

3

不要将 String 与 进行比较==,请使用equals()

==检查操作数是否引用相同的对象实例(仅检查原始类型的相同值)

equals()检查相同的对象内容(对于覆盖该equals方法的类,String当然会)。

因此,您的if条件必须是

if (late_list.get(i).stud_id.toString().equals(sel_id))

此外,没有必要调用toString()一个String对象,就像你在sel_id

如果你stud_idString也是,你可以写

if (late_list.get(i).stud_id.equals(sel_id))
于 2012-12-09T09:39:11.133 回答