@shesa
новичок

Как правильно передать int переменную в хранилище SharedPreferences?

Для настроек приложения (изменения размера текста) использую ListPreference
<ListPreference
        android:icon="@drawable/ic_text"
        android:defaultValue="18"
        android:entries="@array/Set_string"
        android:entryValues="@array/Set_Values"
        android:summary="%s"
        android:key="size"
        android:title="@string/Сhoose_Size">
    </ListPreference>

Выбор делаю с помощью массива string-array (по другому в документации никак):
<string name="size" translatable="false">size</string>
    <string-array name="Set_string">
        <item>14</item>
        ...................
        <item>24</item>
        <item>26</item>
    </string-array>
    <string-array name="Set_Values">
        <item>14</item>
       .....................
        <item>24</item>
        <item>26</item>
    </string-array>

Соответственно в хранилище data/data/....preferences имеем:
<string name="size">18</string>
А должно быть так:
<int name="size" value="18" />
Соответственно вопросы:
1. как правильно передать int переменную в хранилище SharedPreferences с помощью моего выбора через ListPreference?
2. на каком этапе это делать (когда записываю в хранилище или когда получаю из него)? Имею несколько активитити/фрагментов где будет изменятьсься размер текста.

Я вызываю sp и меняю размер текста вот так:
TextView Kondaktext1 = findViewById(R.id.Kondaktext1);
            String text = "\t\t\tНепереможний Воєводо і Господи, пекла Переможцю,   ........<br />";                   
            Kondaktext1.setTextSize(TypedValue.COMPLEX_UNIT_SP, sp.getInt("size", 18));
            Kondaktext1.setText(Html.fromHtml(text));
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
АКМЭ сервис Санкт-Петербург
от 80 000 до 110 000 руб.
iGooods.ru Санкт-Петербург
от 150 000 руб.
Frogogo Москва
от 120 000 руб.