2016-10-31 5 views
-3

Out of Bounds Exceptionを引き続き提供するOnclickイベントに問題があります。私は基本的にリストに約30の車の名前のリストを持っている、誰かが車の名前をクリックすると、その横にチェックマークが表示されます。誰かがそれを再度クリックすると、私はチェックマーク消えるを作ると私は境界の例外のうちを取得するときには、通常は..ですこれは私のコードClickイベントのJava android Index Outbound例外の発生

private ArrayList<Integer> selected_positions= new ArrayList<>(); 
binding.list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position, long id) { 


         if(selected_positions.contains(position)) { 
          // Position is already CheckMarked so remove 
          selected_positions.remove(position); 
         } else { 
          // Position Clicked for the 1st time 
         selected_positions.add(position); 
        } 



      final FilterCarsAdapter FS = new FilterCarsAdapter(getActivity(), binding,selected_positions); 
      binding.list.setAdapter(FS); 


     } 
    }); 

である私は基本的にSelected_Positions ArrayListの内部でクリックされた値を保持しています位置によって。インデックス2の項目をクリックするとチェックマークが表示されますが、削除するにはもう一度クリックしてください。java.lang.IndexOutOfBoundsException:無効なインデックス2、サイズは1です。位置5は、私はを取得java.lang.IndexOutOfBoundsException:無効なインデックス5、サイズは1です。私がJavaに慣れていないので、どんな助けも素晴らしいだろう。

+2

デバッグを試しましたか? – Carcigenicate

答えて

2

selected_positions.remove(position);を使用しているときに、それはpositionの位置番号で整数を見つけて削除しようとしているという問題です。

あなたが必要とするもの:selected_positions.remove((Integer)position);

+0

本当にありがとうございました。 –

関連する問題