1

Androidで複数選択されたカスタムリストビューで、チェックされたアイテムID(選択したアイテムの位置や名前ではなく、カスタムID - 私の場合は注文IDを取得する必要があります)を取得する方法。json からの注文名と注文 ID があり、カスタム リスト ビューに入力されています。

ボタンをクリックすると、名前や位置ではなくIDを取得する必要があるボタンがあります。私の場合、注文IDを取得する必要がありますここに画像の説明を入力

4

3 に答える 3

1

に電話するだけですListView.getCheckedItemIds()。チェックされたすべての ID を含む long[] を返します。ListView.getCheckedItemPositions()チェックされたすべての位置を提供するものもあります。

ビューを設定した場所 (またはレイアウト xml) に必ず設定ListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE)してください。onCreate()

チェックされた値を取得するには、これを行うだけです:

SparseBooleanArray checked = mListView.getCheckedItemPositions();
for (int i = 0; i < checked.size(); i++) {
    if (checked.valueAt(i)) {
        int pos = checked.keyAt(i);
        Object o = mListView.getAdapter().getItem(pos);
        // do something with your item. print it, cast it, add it to a list, whatever..
}
于 2013-08-29T09:27:25.267 に答える
0

ジェリー、注文オブジェクトを選択イベント[CheckBox、TextView、Rowビュー]を持つビューにタグとして設定します。ユーザーがアイテムを選択すると、タグから選択された注文オブジェクトを取得でき、そのオブジェクト(注文)の任意のメンバーを取得できます。例のために。

注文オブジェクト

Order {
int id;
String name;
boolean isSelected;

//add getters and setters
}

void getview(...) {
     View v = //inflate view
     CheckBox cb = (CheckBox) v.findViewById(..);
     cb.setTag(yourlist.get(position));
     cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
             ((Order) buttonView.getTag()).setSelected(isChecked);
        }
     });

}
于 2013-08-29T09:43:34.913 に答える