下面列出了android.widget.ListView#getCheckedItemPositions ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static int[] getSelectedIndices(ListView listView) {
SparseBooleanArray sparseArray = listView.getCheckedItemPositions();
int selectedCount = 0;
for (int i = 0; i < sparseArray.size(); ++i) {
if (sparseArray.valueAt(i)) {
selectedCount++;
}
}
int[] indices = new int[selectedCount];
for (int i = 0, j = 0; i < sparseArray.size(); ++i) {
if (sparseArray.valueAt(i)) {
indices[j++] = sparseArray.keyAt(i);
}
}
return indices;
}
protected void processSelectedStates(ListView listView, ConfigureAdapterItem[] items) {
final int choiceMode = listView.getChoiceMode();
if (choiceMode == AbsListView.CHOICE_MODE_MULTIPLE) {
final SparseBooleanArray array = listView.getCheckedItemPositions();
int key;
for (int i = 0; i < array.size(); i++) {
key = array.keyAt(i);
items[key].setChecked(array.valueAt(i));
}
} else if (choiceMode == AbsListView.CHOICE_MODE_SINGLE) {
final int position = listView.getCheckedItemPosition();
for (int i = 0; i < items.length; i++) {
items[i].setChecked(i == position);
}
}
}
private int[] getSelectedIndices(ListView listView) {
SparseBooleanArray sparseArray = listView.getCheckedItemPositions();
int selectedCount = 0;
for (int i = 0; i < sparseArray.size(); ++i) {
if (sparseArray.valueAt(i)) {
selectedCount++;
}
}
int[] indices = new int[selectedCount];
for (int i = 0, j = 0; i < sparseArray.size(); ++i) {
if (sparseArray.valueAt(i)) {
indices[j++] = sparseArray.keyAt(i);
}
}
return indices;
}
private int[] getSelectedIndices(ListView listView) {
SparseBooleanArray sparseArray = listView.getCheckedItemPositions();
int selectedCount = 0;
for (int i = 0; i < sparseArray.size(); ++i) {
if (sparseArray.valueAt(i)) {
selectedCount++;
}
}
int[] indices = new int[selectedCount];
for (int i = 0, j = 0; i < sparseArray.size(); ++i) {
if (sparseArray.valueAt(i)) {
indices[j++] = sparseArray.keyAt(i);
}
}
return indices;
}
private final List<String> getSelectedReceiverIDs(final ListView listView) {
final List<String> receiverIDs = new ArrayList<>();
final Adapter adapter = listView.getAdapter();
final SparseBooleanArray checkedItems = listView.getCheckedItemPositions();
for (int i = 0; i < adapter.getCount(); i++) {
if (checkedItems.get(i)) {
receiverIDs.add(((Receiver) adapter.getItem(i)).id);
}
}
return receiverIDs;
}
private void deleteSelectedItems(){
ListView notesList = (ListView) findViewById(R.id.notes_list);
CursorAdapter adapter = (CursorAdapter) notesList.getAdapter();
SparseBooleanArray checkedItemPositions = notesList.getCheckedItemPositions();
for (int i=0; i < checkedItemPositions.size(); i++) {
if(checkedItemPositions.valueAt(i)) {
DbAccess.trashNote(getBaseContext(), (int) (long) adapter.getItemId(checkedItemPositions.keyAt(i)));
}
}
}