我的活动包含zsmb:materialdrawer
和conductor
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
中执行此操作的最佳做法是什么?
答案 0 :(得分:0)
导体控制器有一个getActivity()
方法,就像片段一样。无论您是使用控制器还是片段,都可以这样做。