Не проверено, но это может работать:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val languageBtn = findViewById<Button>(R.id.language)
val sharedPref = getSharedPreferences("LANGUAGE", Context.MODE_PRIVATE)
val editor = sharedPref.edit()
val currentLocale = sharedPref.getString("LANGUAGE", "EN")
languageBtn.text = currentLocale
language.setOnClickListener {
if (languageBtn.text.contains("EN")) {
languageBtn.text = "IT"
editor.putString("LANGUAGE", "IT").commit()
rollButton.text = "Roll the dice"
textView.text = "choose the number of dice:"
if ("Lancia il dado" == Biscotto.text) {
Biscotto.text = "Roll the dice"
}
} else if (languageBtn.text.contains("IT")) {
languageBtn.text = "EN"
editor.putString("LANGUAGE", "EN").commit()
rollButton.text = "Lancia il dado"
textView.text = "imposta il numero di dadi:"
if ("Roll the dice" == Biscotto.text) {
Biscotto.text = "Lancia il dado"
}
} // else { ... }
}
}
Объявите ваши общие настройки вне события нажатия кнопки. И отсюда получите строку, сохраненную в настройках («EN» или «IT»): это значение затем устанавливается в тексте кнопки.
После этого, внутри события click, вы можете сравнить значение отображается на кнопке с той, которая хранится в общих настройках, и установите ее соответствующим образом.
Кстати, не забудьте поместить все свои строки в файл выделенных значений :) Дайте мне знать, если у вас есть некоторые беда.