提问人:Marcel 提问时间:6/18/2023 更新时间:6/18/2023 访问量:77
通过 putExtra() 更改枚举类中项目的参数值
Change value of parameter of an item in enum class via putExtra()
问:
我在 android studio、kotlin 中更改参数值时遇到问题。我想更改枚举类中特定项目的布尔值。
下面是 MainActivity.kt:
// Variables
val intentMainActivityToShow = Intent(this@MainActivity, ShowData::class.java)
// Select and apply choice
radioButtonGroup.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
R.id.radioButton1 -> {
intentMainActivityToShow.putExtra(Variables.Companion.AvailableChoices.FIRST.chosen, true)
}
R.id.radioButton2 -> {
intentMainActivityToShow.putExtra(Variables.Companion.AvailableChoices.SECOND.chosen, true)
}
R.id.radioButton3 -> {
intentMainActivityToShow.putExtra(Variables.Companion.AvailableChoices.THIRD.chosen, true)
}
}
}
这是 Variables.kt:
package com.example.studyingsendingdata
class Variables {
companion object {
enum class AvailableChoices (var chosen: Boolean) {
FIRST(false),
SECOND(false),
THIRD(false)
}
}
}
下面是 ShowData.kt,它显示参数的更新值:
package com.example.studyingsendingdata
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
class ShowData : AppCompatActivity() {
lateinit var button: Button
lateinit var displayResult: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_show_data)
button = findViewById(R.id.button)
displayResult = findViewById(R.id.displayResult)
val getData = intent.extras // extras is the data which is applied via putExtra
button.setOnClickListener {
displayResult.text = getData?.getString(Variables.Companion.AvailableChoices.FIRST.chosen)
displayResult.text = getData?.getString(Variables.Companion.AvailableChoices.SECOND.chosen)
displayResult.text = getData?.getString(Variables.Companion.AvailableChoices.THIRD.chosen)
}
}
}
每次单击任何按钮时,“选择”的参数值都保持不变。我想我只在 MainActivity.kt 中更改参数的值,而不是在 Variables.kt 中更改参数的值。如何修复代码以“全局”更改特定项目的值?
答: 暂无答案
评论