ryandlf
ryandlf

Reputation: 28555

Android: Change strings resource Programmatically

Is there a way to do this? For instance, I have a setting in my preferences that can convert between metric and standard units of measurement and when the user changes this I would like to update a few strings to change some labels around within my app.

Upvotes: 21

Views: 59439

Answers (2)

Darpan
Darpan

Reputation: 5795

You may use following instructions to fetch saved labels from strings.xml file and show them accordingly at some 'if statement' which could check your

pref = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()) .getString("conversion_mode", "");

String string = getString(R.string.update_identifier);

or

getResources().getString (R.string.update_identifier)

would do the best

getString(int) or getText(int) may be used to retrieve a string. Please note getText(int) will retain any rich text styling applied to the string.

Find the Reference

Upvotes: 9

Vino
Vino

Reputation: 1544

You can update the label on TextView or anything similar.

  • Get the updated string using update_str = Context.getResources().getString (R.string.update_identifier)
  • Update the label using ((TextView)findViewById (R.id.textview)).setText (updated_str)

Upvotes: 26

Related Questions