2011-07-22 19 views
1

私はFrameLayoutアクティビティのリストビューを持っています(アクティビティリストではありません)。Android ListView複数のチェックボックス

私がクリックされたチェックボックスを判断するにはどうすればよい​​3210

を使用してクリック数を聞くことができますか?私はインデックスを取得しないでください。私はあなたがonListItemClickListener()を実装することができListActivity

答えて

1

を使用していないので、

PS OnListItemClickedは範囲外です。すべてのリストビューアイテムを繰り返し、各アイテム(各アイテムの子ビュー)をチェックします。

for(int i = 0; i <= listView.getLastVisiblePosition(); i++) 
    { 
     if(listView.getChildAt(i)!= null) 
     { 
      if(((CheckBox)listView.getChildAt(i).findViewById(R.id.checkbox)).isChecked()) 
      { 
      //do something 
      }else { //do something else} 

     } 
    } 

または、チェックボックスをオンにすると、getView()の方法でチェックすることができます。

+0

すごい汚い方法のthatsを解決すべきだと思います。私は何かクリーナーを探しています。 – Taranfx

+0

場合(((チェックボックス)listView.getChildAt(I).findViewById(R.id.checkbox))にisChecked()。) あなたは ビューparentView = listView.getChildAt(I)にこれを簡素化することができます。 CheckBox chkbox =(CheckBox)parentView.findViewById(R.id.checkbox); if(chkbox.isChecked()) –

+0

私はすべての子をループしたくないということを意味しました。 – Taranfx

0

ListViewにはまだsetOnListItemClickedListener()メソッドがあります。これは、アクティビティコンテキストで実装するのではなく、リスナーをオブジェクトとして作成して渡すことができます。

編集:はい、アダプタービューから継承されます。

ListView docsに移動します。[継承されたメソッド]セクションまでスクロールし、setOnItemClickListener()があるAdapterViewの左の矢印をクリックします。私はそれがそこにあることを保証する前にコードでそれを使用しました。

+0

それはない – Taranfx

0

listView1.getCheckedItemPosition()をお試しください。あなたもこれをやってみてください:

private int checkedItemPosition; 

listView1.setOnItemClickListener(new ListView.OnItemClickListener() 
{ 
    public void onItemClick(AdapterView<?> listView, View selectedItem, int position, long itemId) 
    { 
     CheckBox checkbox = (CheckBox)selectedItem.findViewById(R.id.checkbox); 
     if (checkbox.isChecked()) 
     { 
      checkedItemPosition = position; 
     } 
    } 
}); 
1

この

Vector vect = new Vector(); 
lv1.setAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_multiple_choice, item)); 
    lv1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
    lv1.setClickable(true); 
    lv1.setScrollingCacheEnabled(true); 
    lv1.setOnItemClickListener(deleteclicklistener); 


private OnItemClickListener deleteclicklistener = new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> arg0, View v, int position, 
      long id) { 
     if(vect.contains(position)) 
     { 
      vect.removeElement(position); 
     }else 
     { 
      vect.addElement(position); 
     } 
    } 
}; 

ような何かを、私はこれがあなたの問題

+0

広告申込情報は別途クリックする必要があります。 clickableをTrueに設定すると、チェックボックス+ラインアイテムはクリック可能なものになります。 – Taranfx

関連する問題