android.app.AlertDialog.Builder#setMultiChoiceItems ( )源码实例Demo

下面列出了android.app.AlertDialog.Builder#setMultiChoiceItems ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Override
protected void onPrepareDialogBuilder(Builder builder) {
    super.onPrepareDialogBuilder(builder);
    
    if (mEntries == null || mEntryValues == null) {
        throw new IllegalStateException(
                "MultiSelectListPreference requires an entries array and " +
                "an entryValues array.");
    }
    
    boolean[] checkedItems = getSelectedItems();
    builder.setMultiChoiceItems(mEntries, checkedItems,
            new DialogInterface.OnMultiChoiceClickListener() {
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    if (isChecked) {
                        mPreferenceChanged |= mNewValues.add(mEntryValues[which].toString());
                    } else {
                        mPreferenceChanged |= mNewValues.remove(mEntryValues[which].toString());
                    }
                }
            });
    mNewValues.clear();
    mNewValues.addAll(mValues);
}
 
源代码2 项目: android_9.0.0_r45   文件: MultiCheckPreference.java
@Override
protected void onPrepareDialogBuilder(Builder builder) {
    super.onPrepareDialogBuilder(builder);
    
    if (mEntries == null || mEntryValues == null) {
        throw new IllegalStateException(
                "ListPreference requires an entries array and an entryValues array.");
    }

    mOrigValues = Arrays.copyOf(mSetValues, mSetValues.length);
    builder.setMultiChoiceItems(mEntries, mSetValues,
            new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    mSetValues[which] = isChecked;
                }
    });
}
 
源代码3 项目: YalpStore   文件: MultiSelectListPreference.java
@Override
protected void onPrepareDialogBuilder(Builder builder) {
    super.onPrepareDialogBuilder(builder);

    if (mEntries == null || mEntryValues == null) {
        throw new IllegalStateException(
            "MultiSelectListPreference requires an entries array and "
                + "an entryValues array.");
    }

    if (mNewValues == null) {
        mNewValues = new HashSet<>();
        mNewValues.addAll(mValues);
        mPreferenceChanged = false;
    }

    final boolean[] checkedItems = getSelectedItems(mNewValues);
    builder.setMultiChoiceItems(mEntries, checkedItems,
        new DialogInterface.OnMultiChoiceClickListener() {
            public void onClick(DialogInterface dialog, int which,
                                boolean isChecked) {
                if (isChecked) {
                    mPreferenceChanged |= mNewValues
                        .add(mEntryValues[which].toString());
                } else {
                    mPreferenceChanged |= mNewValues
                        .remove(mEntryValues[which].toString());
                }
            }
        });
}
 
源代码4 项目: matlog   文件: MultipleChoicePreference.java
@Override
protected void onPrepareDialogBuilder(Builder builder) {

    // convert comma-separated list to boolean array

    String value = getValue();
    Set<String> commaSeparated = new HashSet<>(Arrays.asList(StringUtil.split(value, DELIMITER)));

    CharSequence[] entryValues = getEntryValues();
    final boolean[] checked = new boolean[entryValues.length];
    for (int i = 0; i < entryValues.length; i++) {
        checked[i] = commaSeparated.contains(entryValues[i]);
    }

    builder.setMultiChoiceItems(getEntries(), checked, (dialog, which, isChecked) -> checked[which] = isChecked);
    builder.setPositiveButton(android.R.string.ok, (dialog, which) -> {

        checkedDialogEntryIndexes = checked;

        /*
         * Clicking on an item simulates the positive button
         * click, and dismisses the dialog.
         */
        MultipleChoicePreference.this.onClick(dialog, DialogInterface.BUTTON_POSITIVE);
        dialog.dismiss();

    });
}
 
源代码5 项目: haxsync   文件: MultiSelectListPreference.java
@Override
protected void onPrepareDialogBuilder(Builder builder) {
	builder.setMultiChoiceItems(getEntries(), checkedEntryIndexes,
			new OnMultiChoiceClickListener() {

				@Override
				public void onClick(DialogInterface dialog, int which,
						boolean isChecked) {
					checkedEntryIndexes[which] = isChecked;
				}
			});
}
 
源代码6 项目: callmeter   文件: CVListPreference.java
@Override
protected void onPrepareDialogBuilder(final Builder builder) {
    if (m) {
        builder.setMultiChoiceItems(getEntries(), checked,
                new DialogInterface.OnMultiChoiceClickListener() {
                    public void onClick(final DialogInterface dialog, final int which,
                            final boolean val) {
                        CVListPreference.this.checked[which] = val;
                    }
                });
    } else {
        super.onPrepareDialogBuilder(builder);
    }
}