如何在多个活动之间共享一个变量? (科特林)

问题描述 投票:0回答:0

我正在尝试在多个活动之间共享一个变量,到目前为止我所能找到的只是如何将它从一个活动移动到下一个活动(通过单击按钮转到下一个活动和变量被结转)。但是,当尝试将此过程重复到一个屏幕上时,我一直打印出默认值 0。为什么会这样?

下面的代码显示了三个活动中第一个的相应代码。所以在这里,当我点击按钮进入下一个活动时,所有这些变量都会转移到下一个活动。但是当我在下一个活动中重复这段代码时,它就不起作用了。

   val welcomeButton = findViewById<Button>(R.id.welcomeButton)
            welcomeButton.setOnClickListener {
                val userHeight = findViewById<EditText>(R.id.et_UserHeight).text.toString().toInt()
                val userWeight = findViewById<EditText>(R.id.et_UserWeight).text.toString().toInt()
                val userAge = findViewById<EditText>(R.id.et_UserAge).text.toString().toInt()
                val userGender = findViewById<Spinner>(R.id.genderSpinner).toString()
                val userActivityLevel = findViewById<Spinner>(R.id.activityLevelSpinner).toString()
                val userWeightGoal = findViewById<Spinner>(R.id.weightGoalSpinner).toString()
                val intent = Intent(this, WelcomeActivity::class.java)
                intent.putExtra("EXTRA_AGE", userAge)
                intent.putExtra("EXTRA_HEIGHT", userHeight)
                intent.putExtra("EXTRA_WEIGHT", userWeight)
                intent.putExtra("EXTRA_GENDER", userGender)
                intent.putExtra("EXTRA_ACTIVITYLEVEL", userActivityLevel)
                intent.putExtra("EXTRA_WEIGHTGOAL", userWeightGoal)
                startActivity(intent)
            }

下面的代码是我试图将变量发送到第三个活动的第二个活动。但是我无法在第三个活动中使用变量。有什么想法吗?

    val userAge = intent.getIntExtra("EXTRA_AGE", 0)
            val userHeight = intent.getIntExtra("EXTRA_HEIGHT", 0)
            val userWeight = intent.getIntExtra("EXTRA_WEIGHT", 0)
            val userGender = intent.getStringExtra("EXTRA_GENDER")
            val userActivityLevel = intent.getStringExtra("EXTRA_ACTIVITYLEVEL")
            var userWeightGoal = intent.getStringExtra("EXTRA_WEIGHTGOAL")


            val welcomeToHomeButton = findViewById<Button>(R.id.SendToHomeButton)
            welcomeToHomeButton.setOnClickListener {
                intent.putExtra("EXTRA_AGE", userAge)
                intent.putExtra("EXTRA_HEIGHT", userHeight)
                intent.putExtra("EXTRA_WEIGHT", userWeight)
                val intent = Intent(this, HomeActivity::class.java)
                startActivity(intent)
            }
android kotlin variables android-activity data-sharing
© www.soinside.com 2019 - 2024. All rights reserved.