gpt4 book ai didi

java - onRestoreInstanceState 访问 kotlin 中的私有(private)变量

转载 作者:行者123 更新时间:2023-12-02 13:43:50 28 4
gpt4 key购买 nike

我在 kotlin 中初始化了一些私有(private) Int 变量。

class multiply : AppCompatActivity() {
.
.
private var score:Int=0;
private var score2=0;
.
.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState);

if(savedInstanceState==null) {
score=score2;

}

.
.
}
.
.
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
super.onRestoreInstanceState(savedInstanceState)
score=savedInstanceState.getInt("val_score");
}



我的问题是,当我旋转手机时,会创建一个新的 Activity ,并且在当前代码中,分数被分配为 0。有没有办法只初始化一次?出路是什么?

我在 onCreate 里面有一些使用分数的计算。由于 onRestoreInstanceState 是在 onCreate 之后执行的,除了在 onStart 中定义之外,还有什么方法可以使 score 的值不受屏幕旋转的影响?

最佳答案

您的代码应如下所示:

class MultiplyActivity : AppCompatActivity() {
private var score = 0;
private var score2 = 0;

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

if(savedInstanceState != null) {
score = savedInstanceState.getInt("score", 0)
score2 = savedInstanceState.getInt("score2", 0)
}
}

override fun onSaveInstanceState(bundle: Bundle) {
super.onSaveInstanceState(bundle)
bundle.putInt("score", score)
bundle.putInt("score2", score2)
}

关于java - onRestoreInstanceState 访问 kotlin 中的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60924848/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com