I'm using the following to change a symbol:
private void updateCurrencySymbol() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
String symbol = sharedPreferences.getString("preferences_currency", "$");
Toast.makeText(getApplicationContext(),symbol,Toast.LENGTH_LONG).show();
currencySymbol1 = (TextView) findViewById(R.id.currencySymbol1);
currencySymbol2 = (TextView) findViewById(R.id.currencySymbol2);
currencySymbol1.setText(symbol);
currencySymbol2.setText(symbol);
//refreshes the activity
Bundle temp_bundle = new Bundle();
onSaveInstanceState(temp_bundle);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("bundle", temp_bundle);
startActivity(intent);
finish();
}
In the Toast it shows the right symbol that I chose from the settings but it never changes in the actual TextView. I tried changing the text in the onCreate() method and it works, changing to the string I specify.
It wont chagne becuase the data at SharedPreferences doesnt change. There is no need to restart the activity. No need AT ALL. Just setText() the textview. then save to sharedPrefrences for future starts.