Изменить язык в моем приложении на Android 8 - PullRequest
0 голосов
/ 21 мая 2018

Я не могу изменить свое приложение на другой язык на Android 8.0

мой код: Класс приложения

class MyApplication : Application() {

companion object {
    fun changeLanguage(context: Context, lang: String) {
        Log.e(context.packageName, lang)
        val locale = Locale(lang)
        Locale.setDefault(locale)
        val config = context.resources.configuration
        config.setLocale(locale)
        context.createConfigurationContext(config)
        context.resources.updateConfiguration(config, context.resources.displayMetrics)

        val sharedPreference = PreferenceManager.getDefaultSharedPreferences(context)
        sharedPreference.edit().putString("lang", lang).apply()
    }
}

override fun onCreate() {
    super.onCreate()
    val sharedPreference = PreferenceManager.getDefaultSharedPreferences(this)
    val lang = sharedPreference.getString("lang", "en")

    changeLanguage(this, lang)
  }
}

Класс MainActivity

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val sharedPreference = PreferenceManager.getDefaultSharedPreferences(this)
    val lang = sharedPreference.getString("lang", "en")
    if (lang == "en") {
        switchLanguage.setText(R.string.english)
    } else {
        switchLanguage.setText(R.string.viet)
    }
    switchLanguage.isChecked = lang != "en"
    switchLanguage.setOnCheckedChangeListener { _, b ->
        if (!b) {
            MyApplication.changeLanguage(baseContext, "en")
        } else {
            MyApplication.changeLanguage(baseContext, "vi")
        }

        finish()
        startActivity(intent)
      }
   }
}

При первом запуске приложения: first run

Когда я меняю язык на вьетнамский, панель инструментов не меняет язык toolbar not change language

Когда я убиваю приложение и снова открываю все текстовые представления, конвертирую в английский all textview convert to english

извините, мой английский

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