关闭并重新打开应用程序后如何保存所选语言?
我想更改程序的语言并退出程序,重新进入程序后,设备原来的语言无法更改程序选择的语言。 如果有什么办法请在这一点上帮助我。 这是我的代码:
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() 作为生命周期,我的应用程序中没有任何改变。 非常感谢那些试图帮助我的人:)
I want to change the language of the program and exit the program, and after re-entering the program, the original language of the device can not change the language selected by the program.
if there is any way please help me at this point.
here is my codes :
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)
}
my project does not have even 1 error, but the thing that I want is in too many apps by changing language inside them and they keep selected language, but mine after closing and reopennig, the selected language is changed by default device language!
changing onCreate() to onResume() and onStop() as the lifecycle changed nothing in my app.
thanks a lot to whom is trying to help me :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)