2012-12-09 122 views
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); 
      } 
     } 
    } 

}); 
+3

字符串是一個對象。 '=='測試兩個對象是同一個實例。正如jlordo所說(請接受他的回答),使用.equals()來測試字符串值。 – Simon

回答

3

不要==比較字符串,使用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))