Изменить язык не работает на некоторых устройствах - PullRequest
0 голосов
/ 14 мая 2019

Я пишу приложение, поддерживающее многоязыковой интерфейс, и когда я изменяю региональную активность, воссоздаю, и некоторые поля или компоненты не меняют значения через локаль некоторых устройств.

Вот мой код:

public class BaseActivity extends AppCompatActivity implements BaseNavigator {
    @Override
    public void onLanguageChanged(String language) {
        alertDialog.hide();
        Resources resources = getBaseContext().getResources();
        Configuration configuration = resources.getConfiguration();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            configuration.setLocale(Locale.forLanguageTag(language));
        }
        resources.updateConfiguration(configuration, getBaseContext().getResources().getDisplayMetrics());

        Log.d("Language: ", "changeLanguage: " + language);
        recreate();
    }
    public void showDialogView() {
        AlertDialog.Builder addBuilder = new AlertDialog.Builder(this);
        addBuilder.setView(languageDialogViewBinding.getRoot());
        alertDialog = addBuilder.create();
        alertDialog.show();
    }
}

Мой класс TariffActivity ниже:

public class TariffActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener {
     @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        int id = item.getItemId();
        } else if (id == R.id.nav_language) {
            setupChangeLanguageDialog();
            showDialogView();
        }
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}

Вот мой код тарифа_item.xml:

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp">
        <TextView
            android:id="@+id/monthTextView"
            android:text="@string/txt_money"
          ... />
 <TextView
            android:id="@+id/textView10"
            android:text="@string/tariff_minutes"... />

        <TextView
            android:id="@+id/textView17"
            android:text="@string/tariff_internet"
         .../>

        <TextView
            android:id="@+id/textView18"
            android:text="@string/tariff_sms"
         ... />

Если вы видите эту картинку, некоторые тексты на русском и другие на английском

If you can see this picture some texts in russian and other in english

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...