Как уже ответил Mayank Bhatnagar , вы должны создать стиль внутри файла styles.xml. Подробнее см. в руководстве .
Если вы хотите иметь возможность динамически менять тему, я рекомендую вам использовать Настройки , чтобы определить, какие из них использовать. А затем в ваших действиях выслушать изменение предпочтений.
Сначала создайте прослушиватель для изменения предпочтений, который будет реагировать на изменение стиля.
public class StylePreferenceChangeListener implements OnSharedPreferenceChangeListener {
//String constant used as ID to the style preference (used here and in SettingActivity)
public static String PREFERENCE_STYLE_ID = "preference.style";
//The activity that we want to modify style
private Activity activity;
public StylePreferenceChangeListener(Activity activity) {
super();
this.activity = activity;
}
// listener implementation
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if(PREFERENCE_STYLE_ID.equals(key)) {
int newStyleId = prefs.getInt(key, R.style.default_style);
activity.getTheme.applyStyle(newStyleId, true);
}
}
И в своей деятельности создайте экземпляр этого Слушателя. И зарегистрируйте / отмените регистрацию внутри onResume () / onPause ().
public class myActivity extends Activity {
//Our listener reference
StylePreferenceChangeListener myListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate();
setContentView(R.layout.myactivity);
//create instance now so we are sure the activity exist
myListener = new StylePreferenceChangeListener(this);
}
@Override
protected void onResume() {
super.onResume();
//register our listener
getSharedPreferences().registerOnSharedPreferenceChangeListener(myListener);
}
protected void onPause() {
super.onPause();
//unregister our listener
getSharedPreferences().unregisterOnSharedPreferenceChangeListener(myListener);
}
protected void onDestroy() {
super.onDestroy();
//The activity is meant to be destroy, makes no sense to keep our listener
//Drop his reference to allow garbage collecting
myListener = null;
}
}