[英]Call activity method from conductor
我有一個活動與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
}
}
我想從conductor
調用我的Activity
方法。 我正在嘗試執行mView.addDrawerItem()
但此方法在此處不可用。 據我所知, conductor
是片段的替代品,在fragment
我可以輕松地通過interface
調用activity
方法。 在conductor
執行此操作的最佳做法是什么?
導體控制器就像片段一樣具有getActivity()
方法。 無論是使用Controller還是Fragment,您都將執行相同的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.