android.widget.AbsListView#CHOICE_MODE_MULTIPLE源码实例Demo

下面列出了android.widget.AbsListView#CHOICE_MODE_MULTIPLE 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Storm   文件: BaseConfigureChildFragment.java
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);
        }
    }
}
 
源代码2 项目: LovelyDialog   文件: LovelyChoiceDialog.java
private boolean isMultiChoiceList() {
    return choicesList.getChoiceMode() == AbsListView.CHOICE_MODE_MULTIPLE;
}
 
源代码3 项目: ticdesign   文件: TrackSelectionAdapterWrapper.java
/**
 * Sets the checked state of the specified position. The is only valid if
 * the choice mode has been set to {@link AbsListView#CHOICE_MODE_SINGLE} or
 * {@link AbsListView#CHOICE_MODE_MULTIPLE}.
 *
 * @param position The item whose checked state is to be checked
 * @param value The new checked state for the item
 */
public void setItemChecked(int position, boolean value) {
    if (mChoiceMode == AbsListView.CHOICE_MODE_NONE) {
        return;
    }

    // Start selection mode if needed. We don't need to if we're unchecking something.
    if (value && mAttachedRecyclerView != null) {
        startSelectionModeIfNeeded(mAttachedRecyclerView);
    }

    if (mChoiceMode == AbsListView.CHOICE_MODE_MULTIPLE || mChoiceMode == AbsListView.CHOICE_MODE_MULTIPLE_MODAL) {
        boolean oldValue = mCheckStates.get(position);
        mCheckStates.put(position, value);
        if (mCheckedIdStates != null && hasStableIds()) {
            if (value) {
                mCheckedIdStates.put(getItemId(position), position);
            } else {
                mCheckedIdStates.delete(getItemId(position));
            }
        }
        if (oldValue != value) {
            if (value) {
                mCheckedItemCount++;
            } else {
                mCheckedItemCount--;
            }
            updateCheckStateIfPossible(null, position);
            fireOnSelected(null);
        }
        if (mChoiceActionMode != null) {
            final long id = getItemId(position);
            mMultiChoiceModeCallback.onItemCheckedStateChanged(mChoiceActionMode,
                    position, id, value);
        }
    } else {
        int checkedPosition = getCheckedItemPosition();
        boolean updateIds = mCheckedIdStates != null && hasStableIds();
        // Clear all values if we're checking something, or unchecking the currently
        // selected item
        if (value || isItemChecked(position)) {
            mCheckStates.clear();
            if (updateIds) {
                mCheckedIdStates.clear();
            }
        }
        // this may end up selecting the value we just cleared but this way
        // we ensure length of mCheckStates is 1, a fact getCheckedItemPosition relies on
        if (value) {
            mCheckStates.put(position, true);
            if (updateIds) {
                mCheckedIdStates.put(getItemId(position), position);
            }
            mCheckedItemCount = 1;
        } else if (mCheckStates.size() == 0 || !mCheckStates.valueAt(0)) {
            mCheckedItemCount = 0;
        }
        if (checkedPosition != position) {
            if (checkedPosition != AbsListView.INVALID_POSITION)
                updateCheckStateIfPossible(null, checkedPosition);
            updateCheckStateIfPossible(null, position);
            fireOnSelected(null);
        }
    }
}
 
源代码4 项目: Storm   文件: ConfigureOpType.java
@Override
protected int getListViewChoiceMode() {
    return AbsListView.CHOICE_MODE_MULTIPLE;
}
 
源代码5 项目: Storm   文件: ConfigureRounds.java
@Override
protected int getListViewChoiceMode() {
    return AbsListView.CHOICE_MODE_MULTIPLE;
}
 
源代码6 项目: Storm   文件: ConfigureORMs.java
@Override
protected int getListViewChoiceMode() {
    return AbsListView.CHOICE_MODE_MULTIPLE;
}