0

アイテムがクリックされると、グリッドビューがあります。リストを反復処理し、文字列に一致するオブジェクトをリストから削除する必要があります。これまでのコードは次のとおりですが、機能しません。何が悪いのかわからない。助けてください。

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 に答える