Chỉ cần một gợi ý Tôi cho rằng:
Trước finish();
Gọi
setResult(AnIntegerThatNotifiesThePreviousActivitiesToChangeTheme);
Bây giờ trong tất cả các hoạt động của bạn, thực hiện onActivityResult
protected void onActivityResult(int request, int result, Intent data) {
if(result == AnIntegerThatNotifiesThePreviousActivitiesToChangeTheme)
{
//update the current theme
}
}
Một giải pháp khác (Tốt hơn):
Thực hiện một lớp mà tiết kiệm với chủ đề:
public class CurrentThemeHolder {
private CurrentThemeHolder() {
}
private static instance;
public static getInstance() {
if(instance == null)
return new CurrentThemeHolder();
else
return instance;
}
private int mTheme; //identifier of the theme
public getTheme() {
return mTheme;
}
public setTheme(int newTheme){
mTheme = newTheme;
}
}
Bây giờ chúng ta tất cả các hoạt động ur mở rộng ThemeActivity này:
public class ThemeActivity extends Activity {
private int mTheme;
protected void onResume() {
if(mTheme != CurrentThemeHolder.getInstance().getTheme()) {
//do what you should do to set the theme
mTheme = CurrentThemeHolder.getInstance().getTheme();
//everytime you set the theme save it
//this maybe should be done in onCreate()
}
}
}
Nguồn
2012-07-12 22:36:01
Xin chào sherif, tôi muốn biết từ bạn nếu có bất kỳ giải pháp nào để lấy mã màu từ web và tôi có thể thay đổi màu của tất cả các nút mà không cần đến tất cả các nút cụ thể và áp dụng màu BackGround bất kỳ giải pháp bằng cách sử dụng chủ đề hoặc phong cách? Vui lòng chia sẻ bất kỳ đề xuất nào bạn có. – MKJParekh
Bạn có màu sắc vô hạn không? hoặc chỉ là một bộ màu giới hạn? –
Tôi có giới hạn 20 màu để nói, nhưng 20 màu đó được tải xuống từ máy chủ để có thể thay đổi từ lần này sang lần khác, với màu ngắn khoảng 15-20 (không sửa) và các mã màu đó cũng không được sửa. Một trong những người dùng đã đề xuất sử dụng CustomViews http://stackoverflow.com/questions/22529646/android-app-apply-color-theme-dynamically-at-runtime – MKJParekh