提问人:turbodynamic 提问时间:3/13/2023 更新时间:3/14/2023 访问量:69
如何在 Android Studio (kotlin) 的不同 Activity 中使用相同的变量?
How can I use the same variable in different activities in Android Studio (kotlin)?
问:
所以我正在制作一个健身/健康应用程序,我需要公开一些用户输入,以便我可以在其他屏幕(活动)上使用他们的值。我在网上查看了如何做到这一点,我得到的最接近的是一个伴生物体。但这不起作用,因为 Kotlin 不允许我在类内的变量中使用 findViewByID。我找到的所有其他解决方案都适用于 Java,我正在使用 Kotlin。
我尝试将用户输入作为活动类中的伴随对象,但在我使用 findViewByID 获取用户输入并将其放入变量中后,这不起作用。
这是我的代码,希望它不会太长:
package com.example.optilife
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import com.google.firebase.database.DatabaseReference
class LogIn1stTimeActivity : AppCompatActivity() {
companion object {
val userHeight = findViewById<EditText>(R.id.et_UserHeight) //so this doesn't work because it doesn't allow me to use findViewByID
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_log_in1st_time)
val welcomeButton = findViewById<Button>(R.id.welcomeButton)
val userHeight = findViewById<EditText>(R.id.et_UserHeight)
val userWeight = findViewById<EditText>(R.id.et_UserWeight)
val userAge = findViewById<EditText>(R.id.et_UserAge)
welcomeButton.setOnClickListener { var recommendedCalories = 66 + 13.7*userWeight.text.toString().toInt() + 5*userHeight.text.toString().toInt() - 6.8*userAge.text.toString().toInt()
println("$recommendedCalories")
val intent = Intent(this, WelcomeActivity::class.java)
startActivity(intent)}
}
}
因此,我想在另一个屏幕上计算推荐的卡路里,并且我需要该屏幕上的用户输入。 任何帮助将不胜感激,谢谢。
答:
0赞
WebDesk Solution
3/14/2023
#1
您可以只使用 intent.putExtra with intent 并传递“recommendedCalories”数据。
welcomeButton.setOnClickListener
{
var recommendedCalories = 66 + 13.7*userWeight.text.toString().toInt() +
5*userHeight.text.toString().toInt() - 6.8*userAge.text.toString().toInt()
println("$recommendedCalories")
val intent = Intent(this@LogIn1stTimeActivity,WelcomeActivity::class.java)
intent.putExtra("Calories", recommendedCalories)
startActivity(intent)
}
在 WelcomeActivity.class 中获取值并将它们存储在一个变量中。
val resultIntent = intent.extras
if (resultIntent != null) {
val calories= resultIntent.getDouble("Calories")
}
评论