首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从conductor控制器获取活动

从conductor控制器获取活动
EN

Stack Overflow用户
提问于 2018-01-31 00:19:29
回答 1查看 715关注 0票数 1

我正在使用conductor,并且我想在其中初始化GoogleApiClient。正如conductor文档中所述,导体是用来替换Fragment的。在Fragment中,我可以很容易地获得一个activity。在conductor中有什么方法可以做到这一点吗

代码语言:javascript
复制
class SignInController : Controller(), GoogleApiClient.OnConnectionFailedListener {

    private lateinit var mGoogleApiClient: GoogleApiClient
    private lateinit var mFirebaseAuth: FirebaseAuth

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup): View {
        val view = inflater.inflate(R.layout.controller_sign_in, container, false)
        val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(view.context.getString(R.string.default_web_client_id))
                .requestEmail()
                .build()
        mGoogleApiClient = GoogleApiClient.Builder(view.context)
                .enableAutoManage(view.context /* I need an activity here */, this /* OnConnectionFailedListener */)
                .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                .build()

        mFirebaseAuth = FirebaseAuth.getInstance()

        return view
    }
}

我尝试使用view.context而不是activity,但它不起作用。它只需要FragmentActivty。如何在conductor内部初始化GoogleApiClient或将其传递到conductor?我不想在这里使用DI

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 04:03:15

我找到了这个问题的解决方案:非常简单。view.context已经是MyActivity了,我只需要对它进行转换:

代码语言:javascript
复制
GoogleApiClient.Builder(view.context).enableAutoManage(view.context as MyActivity, this)

您还可以通过在controller中调用getActivity()来获取父activity

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48526008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档