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
我对 (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