我无法更改公共变量 Kotlin



我试图更改kotlin中的一个公共变量,但我做不到。当我在另一个脚本中接收到变量时,它没有更改。我在第二个脚本中打印了变量,但它显示为零。我不知道为什么。请帮帮我,我被卡住了。这是我的代码:

package com.backal.bingolooooooooooooto
import android.content.Intent
import android.os.Bundle
import android.util.Log.d
import android.view.View
import androidx.appcompat.app.AppCompatActivity
class AddFavourActivity: AppCompatActivity() {
public var clicked = 0;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.add_favour)
val alt1: View = findViewById(R.id.alt1)
val alt2: View = findViewById(R.id.alt2)
val alt3: View = findViewById(R.id.alt3)
val alt4: View = findViewById(R.id.alt4)
val alt5: View = findViewById(R.id.alt5)
val alt6: View = findViewById(R.id.alt6)
val alt7: View = findViewById(R.id.alt7)
alt1.setOnClickListener {
var clicked = 50
startActivity(Intent(this, EnterPasswordActivity::class.java))
}
alt2.setOnClickListener {
var clicked = 80
d("Alexander", "Clicked is: $clicked")
startActivity(Intent(this, EnterPasswordActivity::class.java))
}
alt3.setOnClickListener {
startActivity(Intent(this, EnterPasswordActivity::class.java))
clicked = 100
}
alt4.setOnClickListener {
startActivity(Intent(this, EnterPasswordActivity::class.java))
clicked = 300
}
alt5.setOnClickListener {
startActivity(Intent(this, EnterPasswordActivity::class.java))
clicked = 500
}
alt6.setOnClickListener {
startActivity(Intent(this, EnterPasswordActivity::class.java))
clicked = 100
}
alt7.setOnClickListener {
startActivity(Intent(this, EnterPasswordActivity::class.java))
clicked = 1000
}
}

}

每次执行var clicked = 50时,都要声明一个新变量(即使它是相同的名称(,所以只需删除var:

clicked = 50

你可能想考虑的另一件事是使用一个伴随对象:

companion object {
var clicked = 0
}

然后您可以在任何地方使用此变量,只需使用:AddFavourActivity.clicked

AddFavourActivity.clicked = 50

伴随对象将确保在的所有地方都使用相同的变量实例

当您这样做时,您一直在创建一个名为clicked的新变量:

var clicked = 80

你应该简单地做:

clicked = 80

请注意,我删除了var,就好像你不这样做一样——它只是在块的范围内创建了一个名为clicked的新变量,并且它不会修改你创建的全局clicked变量。

最新更新