• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps Showing set preference in summary

Change

Lurker
Jan 18, 2016
7
0
Hi all,

I have managed to create way to set preferences (using this tutorial/framework: http://www.cs.dartmouth.edu/~campbell/cs65/lecture12/lecture12.html

But my question is how would I be able to show the set preference as summary text?

Code:
<EditTextPreference
                android:key="edittext_preference"
                android:title="@string/title_edittext_preference"
                android:summary="CURRENT SET PREFERENCE"
                android:dialogTitle="@string/dialog_title_edittext_preference" />

And am I correct in understanding that:
Code:
String randomString = getPreferences(MODE_PRIVATE).getString("edittext_preference","default");

Will get the textpreference set above?

Thanks in advance,
Change


P.s. Yes I am new to coding
 
Got it working:
Code:
@Override
public void onResume(){
    super.onResume();
    // Set up a listener whenever a key changes
    getPreferenceScreen().getSharedPreferences()
            .registerOnSharedPreferenceChangeListener(this);
    updatePreference(KEY_EDIT_TEXT_PREFERENCE);
}

@Override
public void onPause() {
    super.onPause();
    // Unregister the listener whenever a key changes
    getPreferenceScreen().getSharedPreferences()
            .unregisterOnSharedPreferenceChangeListener(this);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
                                      String key) {
    updatePreference(key);
}

private void updatePreference(String key){
    if (key.equals(KEY_EDIT_TEXT_PREFERENCE)){
        Preference preference = findPreference(key);
        if (preference instanceof EditTextPreference){
            EditTextPreference editTextPreference =  (EditTextPreference)preference;
            if (editTextPreference.getText().trim().length() > 0){
                editTextPreference.setSummary(editTextPreference.getText());
            }else{
                editTextPreference.setSummary("Enter Your Name");
            }
        }
However I do not really understand the code, can someone be so kind as to explain how exactly this works?

-Change
 
Upvote 0
What part don't you understand?
I get the updatePreference() part, but I do not know what the super.onResume and onPause do .
Code:
@Override
public void onResume(){
    super.onResume();
    // Set up a listener whenever a key changes
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  }

@Override
public void onPause() {
    super.onPause();
    // Unregister the listener whenever a key changes
    getPreferenceScreen().getSharedPreferences()
            .unregisterOnSharedPreferenceChangeListener(this);
}

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    updatePreference(key);
}

Thanks in advance,
Change
 
Upvote 0
Upvote 0

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones