0

Ok, donc je travaille sur ce sujet depuis un moment maintenant, je sais que cela doit être plus facile que de le faire, mais ce que j'essaie de faire est d'avoir ma préférence xml ou Quelque chose que vous voulez appeler, sur cette mise en page j'ai plusieurs cases à cocher un élément de liste et un texte d'édition, ce que je dois faire est d'obtenir ces préférences de la mise en page xml, puis j'ai besoin de les stocker activité. J'ai travaillé un peu avec ceux-ci cependant j'ai toujours eu une activité qui a stocké les cordes alors j'ai prolongé cette activité dans l'activité pour laquelle j'ai besoin des préférences. Je sais qu'il existe des centaines de ces tutoriels partout sur Internet, mais je ne comprends tout simplement pas comment les mettre en œuvre. Heres mon code jusqu'à présent.Tirer une préférence d'une mise en page de préférences xml

public class MyPreference extends PreferenceActivity 
{ 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    SharedPreferences sharedPreference = getSharedPreferences("PREFERENCES", Activity.MODE_PRIVATE); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.layout.random_pref); 

    // Get the custom preference 
    final Preference randomPref = (Preference) findPreference("randomPref"); 
    Preference randomDayPref = (Preference) findPreference("randomDayPref"); 
    Preference hourPref = (Preference) findPreference("hourPref"); 
    Preference maxRandomMessagePref = (Preference) findPreference("maxRandomMessagePref"); 
    Preference randomContactsPref = (Preference) findPreference("randomContactsPref"); 
    Preference sendSMSPref = (Preference) findPreference("sendSMSPref"); 
    Preference sendEmailPref = (Preference) findPreference("sendEmailPref"); 

    //Finished 
    randomPref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 

    //Finished 
    randomDayPref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 


    hourPref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 


    maxRandomMessagePref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 


    randomContactsPref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 


    sendSMSPref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 

    sendEmailPref.setOnPreferenceClickListener(new OnPreferenceClickListener() 
    { 
    public boolean onPreferenceClick(Preference preference) 
    { 
    return true; 
    } 
    }); 
} 
} 

Et mon Heres fichier XML

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> 
     <PreferenceCategory 
       android:title="Randomization Properties"> 
       <CheckBoxPreference 
       android:title="Random Delays" 
       android:summary="Message" 
       android:defaultValue="false" 
       android:key="randomPref" /> 
       <CheckBoxPreference 
       android:title="Throughout The Day" 
       android:summary="Message" 
       android:defaultValue="false" 
       android:key="randomDayPref" /> 
      <ListPreference 
        android:title="Random Hourly Timings" 
        android:summary="Message" 
        android:key="hourPref" 
        android:defaultValue="6" 
        android:entries="@array/hours" 
        android:entryValues="@array/listValues"/> 
       <EditTextPreference 
       android:name="Messages" 
       android:summary="Message" 
       android:defaultValue="100" 
       android:title="Messages" 
       android:key="maxRandomMessagePref" /> 
     </PreferenceCategory> 

     <PreferenceCategory 
       android:title="Contacts">  
       <Preference 
       android:title="@string/contacts" 
       android:summary="Message" 
       android:key="randomContactsPref" /> 
     </PreferenceCategory> 

     <PreferenceCategory 
       android:title="Options">   
       <CheckBoxPreference 
       android:title="Send Through SMS" 
       android:summary="Send Messages As Normal" 
       android:defaultValue="false" 
       android:key="sendSMSPref" /> 
       <CheckBoxPreference 
       android:title="Send Trhrough E-Mail" 
       android:summary="Send Messages Through E-Mail Uses E-Mail Settings" 
       android:defaultValue="false" 
       android:key="sendEmailPref" />   
     </PreferenceCategory> 
</PreferenceScreen> 

de ce que je vois en ligne je peux avoir besoin de créer un onPrefernceChangeListener()? Je suis vraiment à une perte avec ceci je sais qu'il doit être simple je ne comprends tout simplement pas comment tirer les préférences du xml quand un utilisateur les change et puis les enregistre ainsi mon activité d'homme peut les lire et ajuster en conséquence. Si quelqu'un qui sait ce qu'ils font pourrait me pointer dans la bonne direction ce serait génial.

Répondre

0

Je ne sais pas exactement ce que vous demandez ici, mais je vais essayer de répondre.

Si vous ne faites rien de fantaisie, vous n'aurez pas besoin de surcharger les préférences setOnPreferenceClickListener si vous utilisez les Préférences partagées par défaut. La classe de base gérera l'enregistrement pour vous.

Pour accéder à ces préférences d'une autre activité, vous allez faire quelque chose comme ceci:

SharedPreferences defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
boolean savedValue = defaultSharedPreferences.getBoolean("randomPref", false); 
+0

Si j'utilise mon propre fichier de préférences (non partagé par défaut), il n'enregistre automatiquement les préférences? Ou dois-je faire ça? Si oui, comment puis-je le faire dans 'setOnPreferenceClickListener'? –