首页 > 解决方案 > 多次更改应用程序中定义的变量的值不起作用 [Android]

问题描述

我在应用程序类中定义了一个Int变量week,它的初始值为0,有一些方法可以修改它。我在 Main_activity 中有一个按钮,当我单击它时,周+=1,但是当我多次单击该按钮时,周始终为 1。

我的应用.kt

class App :Application(){
    var week :Int = 0
    fun getNextWeek(): Int{
        this.week+=1
        return this.week
    }
}

这是单击按钮时将执行的代码

val week = App().getNextWeek()
println(week)

当点击按钮次数时,除了:

1
2
3
4

标签: androidkotlin

解决方案


您正在App为每个调用 ( App()) 实例化一个 new,并且每个实例都有自己的week变量。

假设它是一个 Android Application,你永远不应该自己实例化它。假设您确实想将此数据存储在应用程序类中,而是在清单文件中将其声明为应用程序类,并在您的应用程序getApplication()中获取 any的单个实例Context


推荐阅读