Puede mover su "cadena mágica" a los recursos de cadena:
en usted archivo XML preferencia:
<EditTextPreference
android:key="@string/preferences_pdn_key"
android:title="@string/preferences_pdn_title"
android:summary="@string/preferences_pdn_summary"
android:dialogMessage="@string/input_pdn_message" />
En sus values/strings.xml
archivos:
...
<string name="preferences_pdn_key">pdn</string>
...
A continuación, puede hacer referencia a la preferencia desde su Activity
o PreferenceActivity
:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String pdnKey = getString(R.string.prefernece_pdn_key);
String pdn = sharedPreferences.getString(pdnKey, null);
Si no le gusta a buscar las claves de preferencias de recursos de cadena todo el tiempo que puede hacer otro truco:
public class PreferenceNames {
/* categories */
public static final String LoginCategory = MyApplication.getResourceString(R.string.preferences_login_category_key);
...
/* preferences */
public static final String Pdn = MyApplication.getResourceString(R.string.preferences_pdn_key);
...
}
Así que usted puede ahora hacer referencia a la preferencia manera siguiente clave:
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String pdn = sharedPreferences.getString(PreferenceNames.Pdn, null);
Y aquí es cómo su clase MyApplication
debe verse como:
public class MyApplication extends Application {
private static VvmApplication s_instance;
public MyApplication(){
s_instance = this;
}
public static Context getContext(){
return s_instance;
}
public static String getResourceString(int resId){
return getContext().getString(resId);
}
}
Plus es necesario agregar lo siguiente que a su AndroidManifest.xml
:
<application android:name="com.mypackage.application.MyApplication" ... >
...
</application>
¿Cuál es la pregunta? ¿Por qué no quieres usar la pantalla Preferencia? – Jim
Perdón por no estar claro; Quiero usar la pantalla de preferencias, pero no quiero usar cadenas mágicas en mi código. Así que estaba buscando una forma de almacenar las claves en xml. –