Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.WazaBe.HoloEverywhere.preference;
  
  import java.util.HashSet;
  import java.util.Set;
  
  import android.os.Parcel;
 
 
 public class MultiSelectListPreference extends DialogPreference {
 	private static class SavedState extends BaseSavedState {
 
 		public SavedState(Parcel source) {
 			super(source);
 			String[] v = source.createStringArray();
 			 = new HashSet<String>(Arrays.asList(v));
 		}
 
 		public SavedState(Parcelable superState) {
 			super(superState);
 		}
 
 		public void writeToParcel(Parcel destint flags) {
 			super.writeToParcel(destflags);
 		}
 	}
 
 	private CharSequence[] mEntries;
 	private Set<StringmNewValues = new HashSet<String>();
 	private boolean mPreferenceChanged;
 
 	private Set<StringmValues = new HashSet<String>();
 
 	public MultiSelectListPreference(Context context) {
 		this(contextnull);
 	}
 
 	public MultiSelectListPreference(Context contextAttributeSet attrs) {
 		super(contextattrs);
 		TypedArray a = context.obtainStyledAttributes(attrs,
 		a.recycle();
 	}
 
 	public int findIndexOfValue(String value) {
 		if (value != null &&  != null) {
 			for (int i = . - 1; i >= 0; i--) {
 				if ([i].equals(value)) {
 					return i;
 				}
 			}
 		}
 		return -1;
 	}
 
 	public CharSequence[] getEntries() {
 		return ;
 	}
 
 	public CharSequence[] getEntryValues() {
 		return ;
 	}
 
 	private boolean[] getSelectedItems() {
 		final CharSequence[] entries = ;
 		final int entryCount = entries.length;
 		final Set<Stringvalues = ;
 		boolean[] result = new boolean[entryCount];
 
 		for (int i = 0; i < entryCounti++) {
 			result[i] = values.contains(entries[i].toString());
 		}
 
 		return result;
 	}
 
 	public Set<StringgetValues() {
 		return ;
 	}
 
 	protected void onDialogClosed(boolean positiveResult) {
 		super.onDialogClosed(positiveResult);
 
 		if (positiveResult && ) {
 			final Set<Stringvalues = ;
			if (callChangeListener(values)) {
				setValues(values);
			}
		}
	}
	protected Object onGetDefaultValue(TypedArray aint index) {
		final CharSequence[] defaultValues = a.getTextArray(index);
		final Set<Stringresult = new HashSet<String>();
		if (defaultValues != null) {
			for (CharSequence s : defaultValues) {
				result.add(s.toString());
			}
		}
		return result;
	}
	protected void onPrepareDialogBuilder(Builder builder) {
		super.onPrepareDialogBuilder(builder);
		if ( == null ||  == null) {
					"MultiSelectListPreference requires an entries array and "
"an entryValues array.");
		}
		boolean[] checkedItems = getSelectedItems();
		builder.setMultiChoiceItems(checkedItems,
					public void onClick(DialogInterface dialogint which,
							boolean isChecked) {
						if (isChecked) {
else {
						}
					}
				});
	}
		final Parcelable superState = super.onSaveInstanceState();
		if (isPersistent()) {
			// No need to save instance state
			return superState;
		}
		final SavedState myState = new SavedState(superState);
		myState.values = new HashSet<String>(getValues());
		return myState;
	}
	@SuppressWarnings("unchecked")
	protected void onSetInitialValue(boolean restoreValueObject defaultValue) {
				: (Set<String>) defaultValue);
	}
	public void setEntries(CharSequence[] entries) {
		 = entries;
	}
	public void setEntries(int entriesResId) {
	}
	public void setEntryValues(CharSequence[] entryValues) {
		 = entryValues;
	}
	public void setEntryValues(int entryValuesResId) {
				entryValuesResId));
	}
	public void setValues(Set<Stringvalues) {
		.addAll(values);
	}
New to GrepCode? Check out our FAQ X