Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid: Change language programmatically
    text
    copied!<p>I have 3 buttons to change language. So I need to make method, where I could set listeners to buttons which could change language everytime they are pressed. I tried this <a href="https://stackoverflow.com/a/2900144/1088229">https://stackoverflow.com/a/2900144/1088229</a> but this way it changes locale only once and seems that this doesn't work any more (if i click again, it doesn't even respond). So I added <code>changeLanguageListener()</code> in end of listener, so listener is refreshed. </p> <p>So is it ok, how i solved it or there is another way?</p> <pre><code>private void changeLanguageListener() { final Button butEn = (Button) findViewById(R.id.button_language_en); final Button butLt = (Button) findViewById(R.id.button_language_lt); final Button butRu = (Button) findViewById(R.id.button_language_ru); OnClickListener listener = new OnClickListener() { public void onClick(View v) { Button but = (Button) v; Resources res = getResources(); String current = res.getConfiguration().locale.getCountry(); Log.i("Current", current); String localeString = new String(current); if (but.equals(butEn)) { localeString = "en"; } else if (but.equals(butLt)) { localeString = "lt"; } else if (but.equals(butRu)) { localeString = "ru"; } Log.i("Clicked", localeString); if (!current.equalsIgnoreCase(localeString) &amp;&amp; localeString.length() &gt; 0) { // Change locale settings in the app. DisplayMetrics dm = res.getDisplayMetrics(); android.content.res.Configuration conf = res.getConfiguration(); conf.locale = new Locale(localeString.toLowerCase()); res.updateConfiguration(conf, dm); //refresh menu setGridView(); //added this line to get refreshed listener changeLanguageListener(); } } }; butEn.setOnClickListener(listener); butLt.setOnClickListener(listener); butRu.setOnClickListener(listener); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload