Android, как получить конкретные предпочтения? - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть следующий код в моем приложении в res / xml / preferences.xml:


<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Wi-Fi settings">


   <EditTextPreference
            android:key="pref_voice_threshold_top"
            android:title="@string/title_pref_voicetopthreshold"
            android:dialogTitle="@string/dialog_title_pref_voicetopthreshold" 
            android:defaultValue="20"
            android:inputType="number"/>

</PreferenceCategory>

</PreferenceScreen>

И мне было интересно, могу ли я использовать это предпочтение в коде, чтобы я мог обновить его, загрузив XML-файл?

Таким образом, в настоящее время я отображаю вышеуказанное предпочтение в PreferenceActivity, которое работает нормально, однако я хочу иметь возможность обновлять настройки, загружая новые настройки каждую неделю из Интернета.

Итак, мой вопрос: как мне открыть это предпочтение в коде и установить его значение в новое загруженное значение?

Ответы [ 2 ]

4 голосов
/ 24 сентября 2010

Как сказал McStretch, вы должны получить предпочтение с помощью

sharedPreferences = getSharedPreferences("com.yourname.yourapp_preference", 0);
Editor editor = sharedPreferences.edit();

editor.putString("your_optionname", "newValue");
// Save
editor.commit();

com.yourname.yourapp_preference - это имя xml-файла.Обычно он находится по адресу /data/data/com.yourname.yourapp/shared_prefs/com.yourname.yourapp_preference.xml

Просто проверьте этот каталог, чтобы увидеть, как называется ваш файл, но в основном он должен по умолчаниюbe packagename_perference.xml

2 голосов
/ 23 сентября 2010

Взгляните на этот пост, чтобы получить объект предпочтения Editor: Как установить предпочтение в коде?

Прежде чем вы получите Editor:

Синтаксический анализ XML для получения желаемых значений предпочтений, а затем использование Editor для получения правильного предпочтения и последующей его установки.

...