0

所以我按照教程进行操作,但我不确定我如何编写最后一部分来合并不同的字体系列、字体颜色和背景颜色。

我想使用 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();        
    }


}
4

1 回答 1

0

基本上就是这样。

只是你需要一个活动。

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

然后调用以从您的代码中显示它。

于 2013-11-12T13:11:43.180 回答