Вызов метода активности от проводника

У меня есть активность с 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?

2 ответа

Решение

Контроллеры проводников имеют getActivity() метод, как фрагменты. Вы сделали бы то же самое, используете ли вы контроллер или фрагмент.

Используйте либо Conductor, либо Fragment, оба сделают то же самое для вас...

Другие вопросы по тегам