Solo un suggerimento suppongo:
Prima finish();
chiamata
setResult(AnIntegerThatNotifiesThePreviousActivitiesToChangeTheme);
Ora, in tutte le vostre attività, attuare onActivityResult
protected void onActivityResult(int request, int result, Intent data) {
if(result == AnIntegerThatNotifiesThePreviousActivitiesToChangeTheme)
{
//update the current theme
}
}
Un'altra soluzione (migliore):
implementare una classe che salva il tema:
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;
}
}
Ora tutti ur attività estendere questo ThemeActivity:
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()
}
}
}
fonte
2012-07-12 22:36:01
ciao sherif, volevo sapere da te se poteva esserci qualche soluzione in cui ottengo il codice colore dal web e secondo posso cambiare il colore di tutti i miei pulsanti runtime senza andare a tutti i pulsanti particolari e applicare il colore BackGround, potrebbe esserci qualsiasi soluzione con tema o stile? Si prega di condividere qualsiasi suggerimento che avete. – MKJParekh
Hai colori infiniti? o solo un numero limitato di colori? –
Ho 20 colori limitati per dire, ma quelli 20 vengono scaricati dal server in modo che possano variare da una volta all'altra, in colori corti sono circa 15-20 (non risolti) e anche quei codici colore non sono fissi. Uno degli utenti ha suggerito di utilizzare CustomViews http://stackoverflow.com/questions/22529646/android-app-apply-color-theme-dynamically-at-runtime – MKJParekh