Intereting Posts
«Ellipsize» показывает только одну точку Android Gradle 1.1 – добавление тестовой зависимости от тестов другого проекта Android Browser автоматически изменяет размер текста Android Fragment – переход от одного вида к другому? Статические методы или Singletons по производительности (Android)? Декодировать аппаратное обеспечение декодированного устройства H264 с помощью ffmpeg в режиме реального времени BasicAuthentication в android для веб-просмотра не работает Как использовать Robotium с Android Studio? Google Map API v2 не отображает карту на устройстве Невозможно добавить несколько фрагментов в LinearLayout Подключиться к определенному андроиду точки доступа Android BLE GATT_ERROR (133) при подключении к устройству Как создать файл на Sdcard с помощью телефонной заставки Libgdx Android In-App простой учебник Почему пользовательский размер с уровнем видимости пользователя не отображается в моем отчете?

Обработка настроек Android без магических строк

Im использует андроиды, созданные для обработки предпочтений, которые работают, записывая все настройки в XML-файле. Это действительно хорошо, но я не могу найти хороший способ сделать это, не используя магические строки в коде xml и Java.

Единственный способ, которым я мог подумать, – сохранить ключ предпочтения как String, но это тоже не так. Кто-нибудь получил хороший способ решить это?

Solutions Collecting From Web of "Обработка настроек Android без магических строк"

Вы можете переместить свою «магическую строку» в строковые ресурсы:

В файле предпочтений xml:

<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" /> 

В ваших файлах values/strings.xml :

 ... <string name="preferences_pdn_key">pdn</string> ... 

Затем вы можете ссылаться на предпочтения своей Activity или функции PreferenceActivity :

 SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); String pdnKey = getString(R.string.prefernece_pdn_key); String pdn = sharedPreferences.getString(pdnKey, null); 

Если вам не нравится получать ключи предпочтений из строковых ресурсов все время, вы можете сделать еще один трюк:

 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); ... } 

Итак, теперь вы можете ссылаться на свой ключ предпочтения следующим образом:

 SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); String pdn = sharedPreferences.getString(PreferenceNames.Pdn, null); 

И вот как MyApplication класс MyApplication :

 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); } } 

Кроме того, вам нужно добавить следующее к вашему AndroidManifest.xml :

 <application android:name="com.mypackage.application.MyApplication" ... > ... </application> 

Я думаю, что вы ищете [здесь] [1]

[1]: http://developer.android.com/guide/topics/data/data-storage.html взгляните на общие настройки.