0

Ich bin die Einrichtung der PreferenceScreen für meine Android-Anwendung. Ich habe eine EditTextPreference hinzugefügt, um einen Remote-Server anzugeben. Jetzt möchte ich den Benutzer mit einer Option, um die Adresse auf den Anfangswert innerhalb des Popup zurück:Android-Einstellungen, anpassen EditTextPreference

Im Grunde, was ich will, ist eine dritte Taste, „RESET“ neben „CANCEL“ und " OK“

enter image description here

ich es eine einfache Möglichkeit, diese Anpassung zu erreichen?

-Code für Vollständigkeit:

<PreferenceCategory android:title="General"> 

    <EditTextPreference 
     android:defaultValue="http://stackoverflow.com/" 
     android:dialogTitle="Specify the remote server: " 
     android:inputType="textUri" 
     android:key="serverAddress" 
     android:maxLines="1" 
     android:summary="somesSummaryText" 
     android:title="Server Address" 
     android:persistent="true" /> 

</PreferenceCategory> 

Antwort

1

Ich denke, es gibt keine Möglichkeit, dies mit der EditTextPreference zu tun, aber Sie können immer eine einfache Preference haben und fügen Sie Ihren AlertDialog in seinem OnClick mit jeder Anpassung, die Sie im Sinn haben.

<Preference 
    android:key="pref_key_edit" 
    android:summary="@string/pref_summary_edit" 
    android:title="@string/pref_title_edit"/> 

und außer Kraft setzen onPreferenceTreeClick Ihre PreferenceActivity oder PreferenceFragment

@Override 
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { 
    switch (preference.getKey()) { 
     case "pref_key_edit": 
      // Do whatever you want here 
      return true; 
    } 
    return super.onPreferenceTreeClick(preferenceScreen, preference); 
} 
+0

Danke, obwohl es keine einfache Antwort. Es scheint, dass ich viel mehr hineinlesen muss, damit es so funktioniert, wie ich es möchte (ich bin sehr neu bei Android). Zum Glück hast du mich in die richtige Richtung gedrängt. –

0

OK, können Sie eine Preference im Preference Bildschirm für diese. Und in Preference onPreferenceClickListener zeigen Sie Ihren benutzerdefinierten Dialog und erhalten Sie Wert aus dem Dialogfeld und speichern Sie sie mit SharedPreference.