Я хотел бы реализовать глобальную переменную, которая обновляет свое значение при переходе от одного действия к другому (и обратно). Для более подробного объяснения, скажем, моя переменная называется globalVar, и globalVar инициализируется в действии A как «», затем в действии A, когда нажимается пара кнопок, значение обновляется до новой строки. При переходе от действия A к действию B globalVar в действии B должен быть равен обновленной строке в действии A в дополнение к некоторому значению. Другими словами, globaVar должен следить за его обновлениями.
Проблема в том, что при переходе от одного действия к другому значение моей глобальной переменной сбрасывается до первоначального значения.
Я уже пытался сделать инициализацию частной и реализовать открытую функцию, которая обновляет значение, но это не сработало. Ниже приведен код, который у меня есть.
открытый класс Speak: AppCompatActivity () {
private var globalVar= ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_speak)
val pplMom= findViewById<ImageButton>(R.id.pplMom)
globalVar= "mom"
pplMom.setOnClickListener{
intent= Intent(this, People::class.java)
startActivity(intent)}}
public fun setVar (globalVar :String) {
this.globalVar= globalVar
Toast.makeText(this, globalVar, Toast.LENGTH_LONG).show()
}
public fun getVar(): String {
return globalVar
}
}
=========================================
класс People: AppCompatActivity (), {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_people)
var mApp= Speak()
var globalVar= mApp.getVar()
globalVar= globalVar + "testtest"
Toast.makeText(this, globalVar, Toast.LENGTH_LONG).show()
}}
Я напечатал «testtest» вместо «Hellotesttest»