如何设置在Alert Dialog 中高亮选中的项目?
How to set the selected item highlighted in Alert Dialog?
有什么办法可以在alertdialog中高亮选中的项目吗?在我的例子中,我向警报对话框添加了两个项目,我想将点击的项目设置为高亮显示。我目前的方法是我只能突出显示一个项目而不是用户 interactive.I 认为我的 alertdialog 不记得选择 item.Here 是我的方法-
lateinit var dialog: AlertDialog
val listItems=arrayOf("English", "Thai")
var selectedElement= 0
val builder=AlertDialog.Builder(this)
builder.setTitle("Choose Language")
builder.setSingleChoiceItems(listItems,selectedElement,DialogInterface.OnClickListener() { dialogInterface, i ->
if (i == 0) {
setLocale("en")
recreate()
}
if (i == 1) {
setLocale("th")
recreate()
}
dialogInterface.dismiss()
})
dialog= builder.create()
dialog.show()
好吧,经过大量参考,我终于想出了一个解决方案,使用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!!)
}
}
顺便说一句,请随意编辑。编码愉快 :)
有什么办法可以在alertdialog中高亮选中的项目吗?在我的例子中,我向警报对话框添加了两个项目,我想将点击的项目设置为高亮显示。我目前的方法是我只能突出显示一个项目而不是用户 interactive.I 认为我的 alertdialog 不记得选择 item.Here 是我的方法-
lateinit var dialog: AlertDialog
val listItems=arrayOf("English", "Thai")
var selectedElement= 0
val builder=AlertDialog.Builder(this)
builder.setTitle("Choose Language")
builder.setSingleChoiceItems(listItems,selectedElement,DialogInterface.OnClickListener() { dialogInterface, i ->
if (i == 0) {
setLocale("en")
recreate()
}
if (i == 1) {
setLocale("th")
recreate()
}
dialogInterface.dismiss()
})
dialog= builder.create()
dialog.show()
好吧,经过大量参考,我终于想出了一个解决方案,使用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!!)
}
}
顺便说一句,请随意编辑。编码愉快 :)