0

Base アダプターには、複数のビューとチェックボックスが含まれています。

チェックボックスを選択すると、1つの位置が取得され、スクロールして同じチェックボックスを選択解除すると、別の位置が取得されますが、同じ位置が必要です..これを取得するには?

4

2 に答える 2

0

これは、アダプタがビューをリサイクルしていて、適切に処理していないためです。setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)またはを使用していることを確認してくださいsetChoiceMode(ListView.CHOICE_MODE_SINGLE)

カスタムリストアイテムを使用している場合は、私のチュートリアルを参照してください:アイテムをチェックする機能を備えたカスタムリストビュー

于 2012-11-01T10:55:40.267 に答える
0

アダプタークラスで

 public View getView(final int position, final View convertView, ViewGroup parent) {
        View row = super.getView(position, convertView, parent);
if (row == null) 
{
    LayoutInflater inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    row = inflater.inflate(R.layout.reports_list, null);
}

CheckBox cBox=(CheckBox)row.findViewById(R.id.cb1);

cBox.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
    if(cBox.isChecked())
    {
       System.out.println("position "+reportslistview.getPositionForView(cBox));
    }
}
});
于 2012-11-01T10:57:09.590 に答える