хорошо, если вы уже создали деятельность настройки, это было бы что-то подобное этому
public class NormalSettingsActivity extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.normal_preferences);
}
}
в настройках XML добавить категорию предпочтения, как этот
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="Background Color Settiongs" >
<ListPreference
android:defaultValue="#111111"
android:entries="@array/colorName"
android:entryValues="@array/colorCode"
android:key="background_color"
android:summary="Set background color of app"
android:title="Colors" />
</PreferenceCategory>
</PreferenceScreen>
затем в значения папке создать XML так называемые массивы
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="colorName">
<item name="0">Red</item>
<item name="1">Black</item>
<item name="2">Yellow</item>
<item name="3">White</item>
</string-array>
<string-array name="colorCode">
<item name="0">#ff0000</item>
<item name="1">#111111</item>
<item name="2">#ffff33</item>
<item name="3">#ffffff</item>
</string-array>
</resources>
то в вашей деятельности просто установите backgroun d цвета с использованием
backgroundLayout.setBackgroundColor(Color.parseColor(mPreferenceManager.getDefaultSharedPreferences().getString("background_color", "#111111")));
здесь "background_color" исходит из предпочтений XML (Android: ключ = "background_color")
"# 111111" некоторые цвета по умолчанию, который будет установлен, если не найдено
не забудьте создать глобальную переменную
protected PreferencesManager mPreferenceManager;
и инициализировать его в OnCreate, так как
mPreferenceManager = PreferencesManager.instance(this);
см это для цветовой палитры http://stackoverflow.com/questions/2442407/android-color-picker – Sripathi
@Sripathi спасибо за ссылку, но я не в состоянии понять его руководства – Solaire