将尽可能简洁地保持这个......
我想在我的MainActivty类中有一个方法,比如updateUI().
我有另一个文件是一个名为FBManager的对象.该对象基本上拥有"静态"firebase访问方法..让我们说signInUser()
从Activity我调用FBManager.signInUser()...它做了一些逻辑并通过2个私有方法移动,在最后一个私有方法中,我想基本上调用MainActivity.updateUI()...
这不能完成,因为kotlin没有静态方法,并且不能使updateUI()静态.MainActivity().updateUI()编译但不正确,并且不想实例化新的MainActivity.最后,我想把活动传递给第一个构造函数,比如FBManager.signInUser(this)......但是在signInUser()之后,它会转到一个覆盖方法,它只能将一个包作为一个可选输入(我不是相信你可以把活动放到一个包中),因此我无法将活动引用传递给最终的私有方法.....
编辑:进一步阐述
object FBManager {
fun signInUser() {
// Create intent
startActivityForResult(intent)
}
override fun onActivityResult(some intent stuff) {
//Try catch block. In try block call
firebaseAuth(Google account)
}
fun firebaseAuth(acct: GoogleSignInAccount) {
//More logic and an .onCompleteListener
// Inside .onCompeteListener, which is the problem....
MainActivity.updateUI()
}
}
Run Code Online (Sandbox Code Playgroud)
为布局道歉......在我的手机上打字......
- 编辑 -
我希望所有这些都有意义,因为我是编程新手,并且发现很难解释我的问题(因为如果我真的理解它们,我可以想出一个解决方案......)
那么根据标题,还有其他方法可以做到这一点......从一个对象FBManager调用MainActivity中的方法吗?