Android Studio - Kotlin - 全局变量和函数

Android Studio - Kotlin - Global Variables and Functions

我对 (a) Android、(b) Java 和 Kotlin、(c) classes 等等非常陌生。 然而,我试图让一个基本的应用程序在我的平板电脑上运行(它是),我想要一个全局变量的等价物来在各种活动之间使用/共享。 而且因为我知道的太少,所以我找到的任何解决方案都缺少一些我需要的基本信息。所以,如果有人能帮助我,那就太好了:)

所以,假设我有两个活动,我想要一个全局变量,例如mainNavState

所以我做了以下事情: 在 Android Studio 的项目文件夹中,我右键单击活动所在的位置,然后选择新建 -> Kotlin Class 文件。我打电话给 GlobalStuff。 不是很有灵感,我知道。 这个新文件的内容是:

package com.example.myProj

public class GlobalStuff {

    var mainNavState: Int = 0

    public fun get_mainNavState(): Int {
        return mainNavState
    }

    public fun set_mainNavState(newState: Int) {
        mainNavState = newState
    }

}

现在我尝试在我的活动中使用这些功能。

因此,在 activity 中,我执行以下操作:

import com.example.myProj.GlobalStuff as glob

然后调用函数:

navState = glob().get_mainNavState()

虽然我不能调用'set'函数:

glob().set_mainNavState(1)

它需要一个成员声明。

所以这就是我想要掌握的所有基本内容。在某个阶段,我可以坐下来有条不紊地学习 Kotlin 等课程,但现在我只想学习一些基础知识。

我可能做错的事情:

也许我为我的全局函数创建了错误的文件类型?这是一个 Kotlin Class 文件。 也许我需要在某处实例化它?因为我定义的是 class,而不是它的实际实例?

感谢您的帮助:)

加勒特

Kotlin 要简单得多。不要创建 class,而是创建一个对象:

object GlobalStuff {
    var mainNavState: Int = 0
}

然后从另一个 class:

中像这样使用它
GlobalStuff.mainNavState = 1
val x = GlobalStuff.mainNavState