通过 putExtra() 更改枚举类中项目的参数值

Change value of parameter of an item in enum class via putExtra()

提问人:Marcel 提问时间:6/18/2023 更新时间:6/18/2023 访问量:77

问:

我在 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 中更改参数的值。如何修复代码以“全局”更改特定项目的值?

android-studio kotlin android-activity 参数传递 枚举类

评论


答: 暂无答案