Что ж, после получения большого количества ссылок я наконец-то нашел решение, используя SharedPreferences .Я сохраняю значения для позиции выбранных элементов в SharedPreferences и извлекаю в начале приложения.Используя этот способ, я могу видеть выбранный элемент при следующем запуске приложения.Вот код, который я изменил на -
class MainActivity : AppCompatActivity() {
var selectedItems= -1
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
loadLoacle()
loadvalue()
setContentView(R.layout.activity_main)
}
private fun changeLanguage(){
lateinit var dialog: AlertDialog
val listItems=arrayOf("English", "Thai","Myanmar")
val builder=AlertDialog.Builder(this)
builder.setTitle("Choose Language")
builder.setSingleChoiceItems(listItems,selectedItems,DialogInterface.OnClickListener() {dialogInterface,i->
if (i == 0) {
setLocale("en")
recreate()
}
if (i == 1) {
setLocale("th")
recreate()
}
if (i == 2) {
setLocale("my")
recreate()
}
setvalue(i)
dialogInterface.dismiss()
})
dialog= builder.create()
dialog.show()
}
private fun setLocale( lang:String) {
val locale=Locale(lang)
Locale.setDefault(locale)
val config=Configuration()
config.locale=locale
baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)
var editor=getSharedPreferences("Settings", MODE_PRIVATE).edit()
editor.putString("My_Lang", lang)
editor.apply()
}
private fun loadLoacle(){
var prefs=getSharedPreferences("Settings", Activity.MODE_PRIVATE)
val language:String? = prefs.getString("My_Lang","")
println("RESULT"+language)
setLocale(language!!)
}
private fun setvalue( v:Int) {
var editor=getSharedPreferences("Settings", MODE_PRIVATE).edit()
editor.putInt("value", v)
editor.apply()
}
private fun loadvalue(){
var prefs=getSharedPreferences("Settings", Activity.MODE_PRIVATE)
val language:Int? = prefs.getInt("value",0)
selectedItems = prefs.getInt("value",0)
println("RESULT"+language)
setvalue(language!!)
}
}
Кстати, не стесняйтесь редактировать.СЧАСТЛИВЫЙ КОДИНГ:)