Java onRestoreInstanceState访问kotlin中的私有变量

Java onRestoreInstanceState访问kotlin中的私有变量,java,android,kotlin,Java,Android,Kotlin,我在kotlin中初始化了一些私有Int变量 class multiply : AppCompatActivity() { . . private var score:Int=0; private var score2=0; . . override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState); if(savedInstanceState==

我在kotlin中初始化了一些私有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");
     }


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


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

您的代码应该如下所示:

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)
    }

您的代码应该如下所示:

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)
    }