Android comment définir la valeur par défaut de EditTextPreference de SharedPreference?
Ce temps dans le même projet, je me pose un peu question difficile, où dans settings.xml fichier dans le res/xml dossier:
<EditTextPreference
android:key="weight"
android:title="@string/update_user_weight"
android:persistent="true"
android:dialogTitle="@string/update_user_weight"
android:dialogMessage="@string/update_user_weight_message"
android:defaultValue="" />
<EditTextPreference
android:key="age"
android:title="@string/update_user_age"
android:persistent="true"
android:dialogTitle="@string/update_user_age"
android:dialogMessage="@string/update_user_age_message"
android:defaultValue="" />
et dans un fichier de classe UserData.java:
SharedPreferences storeWeightAndAge = getSharedPreferences("WeightAndAgeStorage", Context.MODE_PRIVATE);
Editor store = storeWeightAndAge.edit();
store.putString("weight", weightData);
store.putString("age", ageData);
store.commit();
Ce que j'essaie de faire ici est de mettre les deux ci-dessus EditTextPreferences' android:defaultValue
stockées weight
et age
dans le SharedPreferences
respectivement.
Maintenant, comment dois-je faire?
EDIT: fourni Settings.java fichier qui utilise le settings.xml fichier:
package com.example.drinkup;
import android.content.SharedPreferences;
import android.os.*;
import android.preference.PreferenceFragment;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
public class Settings extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
- Vous souhaitez définir android:valeur par défaut à partir du code?
- Si c'est uniquement possible à l'aide de code, c'est sûr. Mais si le xml peut vous aider à trouver par ses propres, que ce serait mieux. Comme:
@strings/....
etc etc... quelque chose comme ça. - Dans le fichier xml, vous pouvez le faire par: android:defaultValue="YOUR_DEFAULT_VALUE". Notez que vous obtenez votre valeur par défaut de strings.xml android:defaultValue="@cordes/....".
- Oh non je ne fais pas de plan sur la configuration des valeurs par défaut de strings.xml je voulais juste donner un exemple de définition des valeurs par défaut comme dans une manière similaire à la façon que vous le feriez à partir de strings.xml. Je veux mettre les valeurs par défaut comme les cordes que j'ai stockés dans le
SharedPreferences
qui leurs clés"weight"
et"age"
.
Vous devez vous connecter pour publier un commentaire.
Bon, les gars, je l'ai eu:
Ce que ce n'est qu'il met l'EditText boîte à la
SharedPreferences
' clé enregistrée (dans ce cas,weight
etage
deWeightAndAgeStorage
) de données dans la boîte de dialogue qui apparaît lorsque vous appuyez sur ce bouton.Espère que quelqu'un d'autre lecture de ce maintenant ou dans l'avenir (mais que sur le passé?) les avantages de cette constatation.
Cheers!
Tout d'abord, définir la valeur par défaut pour
EditTextPreference
. La valeur sera stockée dans unString
type. Par exemple:Ensuite, appliquer la valeur par défaut dans une activité où votre application est l'activité a commencé d'abord (une fois installé pour la première). Par exemple, dans le
MainActivity
'sonCreate()
méthode:editTextPreference
commeweightData
, pas le vrai enregistré le poids qui est un numéro de chaîne (54).weightData
comme valeur (p. 54). Voir modifier en premier. Mais, il est préférable pour vous de créer unNumberPicker
dans les préférences qui permet d'enregistrer des données commeint
(numérotées de valeur), parce queEditTextPreference
toujours enregistre les données en tant queString
valeur. Rappelez-vous:String
ne peut pas être utilisé dans les mathématiques, maisint
peut.Tout ce que vous avez à faire est d'utiliser les sharedPreferences.getString (), puis utilisez la editext.setText() pour cela.