分离活动的视图及其逻辑



我正在重构一个变得太大的活动。理想情况下,我试图完成的是让我的活动初始化我的所有视图并设置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.

最新更新