Please follow this previus tutorial... I think you have your strings.xml right now the themes and the settings.xml
Right now we will only create an activity file....
In your MainActivity.java copy this code before super.onCreate(savedInstanceState);:
SharedPreferences pref = PreferenceManager .getDefaultSharedPreferences(this); String themeName = pref.getString("prefSyncFrequency3", "Theme1"); if (themeName.equals("Africa")) { setTheme(R.style.AppTheme); } else if (themeName.equals("Colorful Beach")) { //Toast.makeText(this, "set theme", Toast.LENGTH_SHORT).show(); setTheme(R.style.beach); } else if (themeName.equals("Abstract")) { //Toast.makeText(this, "set theme", Toast.LENGTH_SHORT).show(); setTheme(R.style.abstract2); } else if (themeName.equals("Default")) { setTheme(R.style.defaulttheme); }After that create a new class and named it, UserSettingActivity:
Here's the code:
import android.content.SharedPreferences; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceChangeListener; import android.view.MenuItem; import android.widget.Toast; public class UserSettingActivity extends PreferenceActivity { public static final int RESULT_CODE_THEME_UPDATED = 1; @Override protected void onCreate(Bundle savedInstanceState) { SharedPreferences pref = PreferenceManager .getDefaultSharedPreferences(this); String themeName = pref.getString("prefSyncFrequency3", "Theme1"); if (themeName.equals("Africa")) { setTheme(R.style.AppTheme); } else if (themeName.equals("Colorful Beach")) { //Toast.makeText(this, "set theme", Toast.LENGTH_SHORT).show(); setTheme(R.style.beach); } else if (themeName.equals("Abstract")) { //Toast.makeText(this, "set theme", Toast.LENGTH_SHORT).show(); setTheme(R.style.abstract2); } else if (themeName.equals("Default")) { setTheme(R.style.defaulttheme); } //Toast.makeText(this, "Theme has been reset to " + themeName, // Toast.LENGTH_SHORT).show(); super.onCreate(savedInstanceState); super.onCreate(savedInstanceState); getActionBar().setTitle("Settings"); getActionBar().setDisplayHomeAsUpEnabled(true); addPreferencesFromResource(R.xml.settings); findPreference("prefSyncFrequency3").setOnPreferenceChangeListener(new RefershActivityOnPreferenceChangeListener(RESULT_CODE_THEME_UPDATED)); } public class RefershActivityOnPreferenceChangeListener implements OnPreferenceChangeListener { private final int resultCode; public RefershActivityOnPreferenceChangeListener(int resultCode) { this.resultCode = resultCode; } @Override public boolean onPreferenceChange(Preference p, Object newValue) { setResult(resultCode); return true; } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: { finish(); break; } } return super.onOptionsItemSelected(item); } }And in AndroidManifest never forget to call UserSettingActivity:
Note: That is my case.
HAPPY CODING!
never forget to comment below of you are having errors...