我想改變程式的語言并退出程式,重新進入程式后,設備原來的語言無法改變程式選擇的語言。如果有什么辦法,請在這一點上幫助我。這是我的代碼:
class LanguageActivity : AppCompatActivity() {
private lateinit var databinding: ActivityLanguageBinding
private lateinit var locale: Locale
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
databinding = DataBindingUtil.setContentView(this,R.layout.activity_language)
val languageList = ArrayList<String>()
languageList.add("Select")
languageList.add("English")
languageList.add("Persian")
languageList.add("Pashto")
val adapter = ArrayAdapter(this, androidx.appcompat.R.layout.support_simple_spinner_dropdown_item, languageList)
databinding.spinnerLanguage.adapter = adapter
databinding.spinnerLanguage.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
when(position){
0 -> {
}
1 -> setLocale("en")
2 -> setLocale("fa")
3 -> setLocale("ps")
}
}
override fun onNothingSelected(parent: AdapterView<*>?) {
}
}
}
fun setLocale (languageName: String){
locale = Locale(languageName)
val res = resources
val dm = res.displayMetrics
val conf = res.configuration
conf.locale = locale
res.updateConfiguration(conf,dm)
val refresh = Intent(this, LanguageActivity::class.java)
startActivity(refresh)
}
我的專案甚至沒有 1 個錯誤,但我想要的是在太多的應用程式中通過更改它們內部的語言并且它們保持選定的語言,但是在關閉并重新打開后我的,選定的語言默認更改為設備語言!
將 onCreate() 更改為 onResume() 和 onStop() 作為生命周期在我的應用程式中沒有任何改變。非常感謝誰試圖幫助我:)
uj5u.com熱心網友回復:
- 您可以將值(所選語言)存盤在 SharedPreference
- 然后在 onStop() 你可以將值存盤在資料庫中
- 然后在 onStart() 你可以從資料庫中讀取值并保存在 SharedPreference
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/444346.html
下一篇:如何從用戶表中洗掉地址的外鍵?
