创建Android首选项屏幕

时间:2013-11-12 12:24:46

标签: android fonts sharedpreferences typeface

所以我遵循this教程,但我不确定如何编写最后一部分以合并不同的字体系列,字体颜色和背景颜色。

我想使用Courier New,Times New Roman,Monospace,Sans-Serif(DEFAULT)来选择字体系列。黑色,白色,绿色(#00FF00)和午夜蓝(#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>

这是我的prefs.xml中的PreferenceCategory:

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

编辑:显示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();        
    }


}

1 个答案:

答案 0 :(得分:0)

基本上就是这样。

只需要一项活动。

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

然后致电以从您的代码中显示它。