我正在重构一个变得太大的活动。理想情况下,我试图完成的是让我的活动初始化我的所有视图并设置Listeners。然后将逻辑卸载到辅助类。我很确定我想用一个接口来做这件事。但那就是我被卡住了。
例如,让类Main和MainHelper。Main有一个CardView和一个按钮。该按钮将显示卡片视图。
-
MainHelper有什么接口,Main实现了它?
-
如何从MainHelper更新视图?
-
有没有更好的方法来实现我想要实现的目标?
class MainActivity : AppCompatActivity(), MainHelper.MainActivityHelper { private lateinit var btn: Button = findViewById(R.id.btn) private lateinit var menu: CardView = findViewById(R.id.menu) override fun onCreate(savedInstanceState: Bundle?) { btn.setOnClickListener { v: View? -> handleBtn()} } override fun handleBtn() {}
}
class MainHelper: AppCompatActivity() { interface MainActivityHelper { fun handleBtnM() { menu.visibility = View.VISIBLE } }
我建议您不要使用这个Helper类,而是使用一个更现代、测试更好的体系结构模式,如Model View ModelView(MVVM(。如果是这样,您可以利用Android Jetpack的架构组件来帮助您更好地组织和分离问题,如下所述:https://developer.android.com/jetpack/guide.
以下是对Android的ViewModel
实现的更深入的解释:https://developer.android.com/topic/libraries/architecture/viewmodel.