来自指挥的呼叫活动方法

时间:2018-01-31 18:07:04

标签: android kotlin conductor

我的活动包含zsmb:materialdrawerconductor

class MenuActivity : AppCompatActivity(), GoogleApiClient.OnConnectionFailedListener{

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_menu)
        router = Conductor.attachRouter(this, container, savedInstanceState)
        if (!router.hasRootController()){
            router.setRoot(RouterTransaction.with(HomeController()))
        }
    }

    fun addDrawerItem() {
        // not implemented
    }

    private fun initViews(savedInstanceState: Bundle?) {
        toolbarMenu.setTitle(R.string.menu_title)

        drawerResult = drawer {

            primaryItem(getString(R.string.public_chats)){
                identifier = 101
                icon = R.drawable.abc_ic_star_black_48dp
                onClick(pushController(ChatRoomsController()))
            }
            primaryItem(getString(R.string.private_chats)){
                identifier = 102
                icon = R.drawable.abc_ic_star_black_48dp
                onClick(openActivity(ChatListActivity::class))
            }

        }
    }

}

class HomeController: Controller() {
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup): View {
        mView = inflater.inflate(R.layout.controller_sign_in, container, false)
        val signInWithGoogle = mView.findViewById<Button>(R.id.sign_in_with_google)
        signInWithGoogle?.setOnClickListener({
            // handle action with drawer here
            // mView.addDrawerItem()
        })
        return mView
    }
}

我想从Activity调用我的conductor方法。 我正在尝试执行mView.addDrawerItem(),但此方法不可用。 据我所知,conductor是片段的替代品,fragment我可以通过activity轻松调用interface方法。在conductor中执行此操作的最佳做​​法是什么?

1 个答案:

答案 0 :(得分:0)

导体控制器有一个getActivity()方法,就像片段一样。无论您是使用控制器还是片段,都可以这样做。

相关问题