In-app Language Switches
Kotlin:
class InAppLanguageActivity : FragmentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_in_app_language)
}
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(LanguageHelper.changeLanguage(newBase))
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.in_app_toolbar, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.menu_en -> handleLanguageChange(getString(R.string.in_app_language_en))
R.id.menu_hi -> handleLanguageChange(getString(R.string.in_app_language_hi))
R.id.menu_de -> handleLanguageChange(getString(R.string.in_app_language_de))
else -> super.onOptionsItemSelected(item)
}
}
private fun handleLanguageChange(languageCode: String): Boolean {
LanguagePreference.setLocalePreference(this, languageCode)
recreate()
return true
}
}
Last updated