private void updateState(@StringRes int targetKey, String valueKey) { Preference pref = findPreference(targetKey); if (pref.getSharedPreferences().getBoolean(valueKey, false)) { pref.setSummary(getString(R.string.state_enabled)); } else { pref.setSummary(getString(R.string.state_disabled)); } }
@Override public boolean onPreferenceChange(Preference preference, Object newValue) { java.util.Set<String> newSets = (java.util.Set<String>) newValue; if (newSets == null || newSets.isEmpty()) { Toast.makeText(getContext(), R.string.toast_invalid_set_selection, Toast.LENGTH_LONG).show(); return false; // disallow update } SpaceDockApplication.updateSetPreferences(newSets); // there may a race here, since transaction not shared with the actual selection commit preference .getSharedPreferences() .edit() .putStringSet(PREF_KEY_SEEN_SET_ID, mObservedSetIds) .commit(); return true; // approve update, and allow it to be persisted }
protected void pickAction(@StringRes int id) { openActivityForResult( id, ActionPickerActivity.class, REQUEST_ACTION, new ExtraPutter() { @Override public void putExtras(Preference preference, Intent activityIntent) { mPrefKey = preference.getKey(); ActionPickerActivity.putExtras(activityIntent, preference.getTitle(), true); } }); Preference pref = findPreference(id); ActionInfo.Record record = ActionInfo.Record.fromPreference( pref.getSharedPreferences().getString(pref.getKey(), "")); updateActionSummary(pref, record); }
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case REQUEST_ACTION: if (resultCode == RESULT_OK) { ActionInfo.Record record = (ActionInfo.Record) data.getSerializableExtra(ActionPickerActivity.EXTRA_ACTION_RECORD); MyApp.logD("picked intent: " + record.intentUri); // save Preference pref = findPreference(mPrefKey); pref.getSharedPreferences() .edit() .putString(mPrefKey, record.toStringForPreference()) .apply(); updateActionSummary(pref, record); } break; default: super.onActivityResult(requestCode, resultCode, data); } }
@Override public void onCreate(Bundle savedInstanceState) { // Assign a theme according to settings or default setTheme(MainActivity.CURRENT_THEME); super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); Preference pref = (Preference) findPreference("pref_no_of_teams"); // First of all set the summary to the initial number of teams int default_n_teams = getResources().getInteger(R.integer.no_of_Teams_default); int no_of_teams = pref.getSharedPreferences().getInt(SettingsActivity.KEY_NO_OF_TEAMS, default_n_teams); pref.setSummary(String.valueOf(no_of_teams) + " teams as default."); // Secondly add the functionality to change it pref.setOnPreferenceClickListener( new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference arg0) { // Increment the current value SharedPreferences settings = arg0.getSharedPreferences(); int default_n_teams = getResources().getInteger(R.integer.no_of_Teams_default); int no_of_teams = settings.getInt(SettingsActivity.KEY_NO_OF_TEAMS, default_n_teams) % getResources().getInteger(R.integer.maxTeams) + 1; arg0.setSummary(String.valueOf(no_of_teams) + " teams as default."); // Save incremented value SharedPreferences.Editor settingsEditor = settings.edit(); settingsEditor.putInt(SettingsActivity.KEY_NO_OF_TEAMS, no_of_teams); settingsEditor.commit(); return false; } }); }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref); Preference inputmethod = findPreference(getString(R.string.prefs_next_inputmethod_key)); if (inputmethod == null) return; if (!(inputmethod instanceof ListPreference)) return; ListPreference list = (ListPreference) inputmethod; InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); PackageManager pm = getPackageManager(); List<InputMethodInfo> info = im.getEnabledInputMethodList(); String[] entries = new String[info.size()]; String[] entriesValue = new String[info.size()]; int index = 1; for (int count = 0; count < info.size(); count++) { String label = info.get(count).loadLabel(pm).toString(); String id = info.get(count).getId(); if (id.indexOf("com.diycircuits.cangjie") == -1) { entries[index] = label; entriesValue[index] = id; index++; } } entries[0] = getString(R.string.no_next_inputmethod); entriesValue[0] = ""; list.setEntries(entries); list.setEntryValues(entriesValue); Preference vibrator_on = findPreference("vibrate_on"); Preference vibrator_settings = findPreference("pref_vibration_duration_settings"); Preference sound_on = findPreference("sound_on"); Preference sound_settings = findPreference("pref_keypress_sound_volume"); final SharedPreferences sp = getPreferenceManager().getSharedPreferences(); if (getSystemService(Context.VIBRATOR_SERVICE) == null) { vibrator_on.setEnabled(false); vibrator_settings.setEnabled(false); } else { vibrator_settings.setEnabled( vibrator_on.getSharedPreferences().getBoolean("vibrate_on", false)); vibrator_settings.setSummary( Integer.toString(sp.getInt("pref_vibration_duration_settings", 5)) + "ms"); } sound_settings.setEnabled(sound_on.getSharedPreferences().getBoolean("sound_on", false)); sound_settings.setSummary(Integer.toString(sp.getInt("pref_keypress_sound_volume", 50))); vibrator_on.setOnPreferenceChangeListener( new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (newValue != null && newValue instanceof Boolean) { Preference vibrator_on = findPreference("vibrate_on"); Preference vibrator_settings = findPreference("pref_vibration_duration_settings"); vibrator_settings.setEnabled(((Boolean) newValue).booleanValue()); vibrator_settings.setSummary( Integer.toString(sp.getInt("pref_vibration_duration_settings", 5)) + "ms"); } return true; } }); vibrator_settings.setOnPreferenceClickListener( new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { showKeypressVibrationDurationSettingsDialog(); return true; } }); sound_on.setOnPreferenceChangeListener( new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (newValue != null && newValue instanceof Boolean) { Preference sound_on = findPreference("sound_on"); Preference sound_settings = findPreference("pref_keypress_sound_volume"); sound_settings.setEnabled(((Boolean) newValue).booleanValue()); sound_settings.setSummary( Integer.toString(sp.getInt("pref_keypress_sound_volume", 50))); } return true; } }); sound_settings.setOnPreferenceClickListener( new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference arg0) { showKeypressSoundVolumeSettingDialog(); return true; } }); }