Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RingtonePreference getEntry method

I want to display current selected value in my preferences screen in summary label.

For ListPreference, I used getEntry method in

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

method, my class is:

public class AlarmPropertiesActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener

For EditTextPreference, I used getText method

I try get default value for RingtonePreference, but I have not found any get method for that.

Anybody help me?

BR Kolesar

like image 365
Kolesar Avatar asked Dec 19 '25 23:12

Kolesar


1 Answers

This one works for me ;-)

if (pref instanceof RingtonePreference) {

            Log.i("***", "RingtonePreference " + pref.getKey());
            final RingtonePreference ringPref = (RingtonePreference) pref;
            ringPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference,
                        Object newValue) {
                    Log.i("***", "Changed " + newValue.toString());
                    Ringtone ringtone = RingtoneManager.getRingtone(
                            SettingsActivity.this, Uri.parse((String) newValue));
                    ringPref.setSummary(ringtone.getTitle(SettingsActivity.this));
                    return true;
                }
            });
            String ringtonePath=pref.getSharedPreferences().getString(pref.getKey(), "defValue");
            Ringtone ringtone = RingtoneManager.getRingtone(
                    SettingsActivity.this, Uri.parse((String) ringtonePath));
            ringPref.setSummary(ringtone.getTitle(SettingsActivity.this));

        }
like image 162
Waza_Be Avatar answered Dec 21 '25 12:12

Waza_Be



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!