У меня проблемы с тем, чтобы моя активность реагировала на изменение темы (т.е. изменение Theme_Dark на Theme_Light).
В Activity этот код ниже работает нормально, и тема изменяется при создании Activity (метод getPreferenceTheme () просто получает значение предпочтения темы, которое было установлено с помощью PreferenceActivity).
protected void onCreate(Bundle savedInstanceState) {
setTheme(getPreferenceTheme());
super.onCreate(savedInstanceState);
setContentView(R.layout.controls);
}
Но как я могу динамически изменить тему? Поэтому после того, как я изменил тему в PreferenceActivity и вернулся к основному действию, как я могу изменить его?
Я знаю, что я могу перезапустить Activity, чтобы сделать это (снова вызывая onCreate ()), но я не хотел этого делать и слышал, что возможно «заново раздувать иерархию представления» в onResume () - как мне это сделать?
Я попробовал следующее (удар в темноте), но без радости.
protected void onResume() {
super.onResume();
LayoutInflater inflater = LayoutInflater.from (this);
View v = inflater.inflate (R.layout.controls, null);
setTheme(getPreferenceTheme());
setContentView(v);
}
Любая помощь высоко ценится,
M.