Androidで複数選択されたカスタムリストビューで、チェックされたアイテムID(選択したアイテムの位置や名前ではなく、カスタムID - 私の場合は注文IDを取得する必要があります)を取得する方法。json からの注文名と注文 ID があり、カスタム リスト ビューに入力されています。
ボタンをクリックすると、名前や位置ではなくIDを取得する必要があるボタンがあります。私の場合、注文IDを取得する必要があります
Androidで複数選択されたカスタムリストビューで、チェックされたアイテムID(選択したアイテムの位置や名前ではなく、カスタムID - 私の場合は注文IDを取得する必要があります)を取得する方法。json からの注文名と注文 ID があり、カスタム リスト ビューに入力されています。
ボタンをクリックすると、名前や位置ではなくIDを取得する必要があるボタンがあります。私の場合、注文IDを取得する必要があります
に電話するだけです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..
}
ジェリー、注文オブジェクトを選択イベント[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);
}
});
}