2013-11-12 5 views
0

Итак, я последовал за this учебным пособием, но я не уверен, как написать последнюю часть, чтобы включить различные семейства шрифтов, цвета шрифтов и цвета фона.Создание экрана настроек Android

Я хочу использовать Courier New, Times New Roman, Monospace, Sans-Serif (DEFAULT) для выбора семейства шрифтов. Черный, белый, зеленый (# 00FF00) и Midnight Blue (# 003366) для цветов шрифтов. Наконец, цвета фона будут белого, черного, розового (# FF00FF) и коричневого (# 663300).

У меня есть экран настроек, достаточно хорошо отображающий этот учебник, но я просто не уверен, как работает последний бит учебника. Если кто-то может дать мне пример из вышеупомянутых пунктов, которые я заметил, это было бы большой помощью.

Вот массивы в моей strings.xml:

<!-- Prefs Arrays --> 
<!-- Background Colours --> 
<string-array name="bg_colours"> 
<item>White</item> 
<item>Black</item> 
<item>Pink</item> 
<item>Brown</item> 
</string-array> 

<string-array name="bg_values"> 
<item>1</item> 
<item>2</item> 
<item>3</item> 
<item>4</item> 
</string-array> 

<!-- Font Colour --> 
<string-array name="font_colours"> 
<item>Black</item> 
<item>White</item> 
<item>Green</item> 
<item>Blue</item> 
</string-array> 

<string-array name="font_values"> 
<item>1</item> 
<item>2</item> 
<item>3</item> 
<item>4</item> 
</string-array> 

<!-- Font Family --> 
<string-array name="font_family"> 
<item>Courier New</item> 
<item>Times New Roman</item> 
<item>Monospace</item> 
<item>Sans-Serif (Default)</item> 
</string-array> 

<string-array name="family_values"> 
<item>1</item> 
<item>2</item> 
<item>3</item> 
<item>4</item> 
</string-array> 

Здесь вы PreferenceCategory в моем prefs.xml:

<PreferenceCategory 
    android:title="@string/prefs_options"> 

     <ListPreference 
      android:key="pref_type1" 
      android:title="@string/prefs_bg_colour" 
      android:summary="Select background colour" 
      android:entries="@array/bg_colours" 
      android:entryValues="@array/bg_values" 
      android:defaultValue="1" 
      /> 
     <ListPreference 
      android:key="pref_type2" 
      android:title="@string/prefs_font_colour" 
      android:summary="Select font colour" 
      android:entries="@array/font_colours" 
      android:entryValues="@array/font_values" 
      android:defaultValue="1" 
      /> 
      <ListPreference 
      android:key="pref_type3" 
      android:title="@string/prefs_font_family" 
      android:summary="Select font family" 
      android:entries="@array/font_family" 
      android:entryValues="@array/family_values" 
      android:defaultValue="1" 
      /> 



    </PreferenceCategory> 

EDIT: Для того, чтобы показать Pref.java файл:

public class Prefs extends PreferenceActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.layout.prefs); 
    } 

    // String 
    public static String Read(Context context, final String key) { 
     SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); 
     return pref.getString(key, ""); 
    } 

    public static void Write(Context context, final String key, final String value) { 
      SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context); 
      // font_editor = font_pref.edit(); 
      SharedPreferences.Editor font_editor = settings.edit(); 
      // font_editor.putString("font_style", font_style); 
      // font_editor.putString(key, value); 
      font_editor.putString(key, value); 
      // font_editor.commit(); 
      font_editor.commit();   
    } 

    // Boolean 
    public static boolean ReadBoolean(Context context, final String key, final boolean defaultValue) { 
     SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context); 
     return settings.getBoolean(key, defaultValue); 
    } 

    public static void WriteBoolean(Context context, final String key, final boolean value) { 
      SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context); 
      SharedPreferences.Editor editor = settings.edit(); 
      editor.putBoolean(key, value); 
      editor.commit();   
    } 


} 

ответ

0

Это в основном это.

Только то, что вам нужно.

public class SettingsActivity extends PreferenceActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

Затем позвоните, чтобы показать это из вашего кода.

+0

У меня это уже есть. См. Приведенный выше отредактированный пример. –

+0

Итак, что именно вы хотите сделать сейчас? Прочтите их предпочтения из других источников? –

+0

Что бы ни было в массиве строк, я хочу присвоить ему значение, чтобы все приложение изменилось на этот цвет. Таким образом, у меня есть экран предпочтений, показанный в учебнике, но у меня нет никаких назначенных значений, таких как #FFFFFF для второго элемента в мастере colorrs. –

Смежные вопросы