欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android Bulle介绍3-Bulle中的MVP模式

程序员文章站 2024-03-15 18:45:54
...

Android Bulle介绍3-Bulle中的MVP模式

项目地址:https://github.com/openVS-liu/AndroidBulletMvp

基础介绍

特点

1 解耦彻底,Activity或者Fragment可以彻底的作为View,Presenter同步了View的所有生命周期方法 ,可以处理全部的业务逻辑。
2 代码简洁,无任何模板或者样板代码。甚至不需要写View和Presenter对象的实例化代码而直接调用
3 内存安全,View销毁时,会自动释放对Presenter的引用

使用示例

HomeActivity.java


@ViewInit(layoutName = "activity_home", title = "城市列表")

class HomeActivity : MvpActivity<HomePresenter?>() {

  override fun onCreate(savedInstanceState: Bundle?) {

      super.onCreate(savedInstanceState)
      //可以直接通过presenter对象调用HomePresenter中的方法。
  }
 
}

HomePresenter.java


class HomePresenter : Presenter<HomeActivity>() {

  override fun onCreate(@NonNull owner: LifecycleOwner) {

      super.onCreate(owner)
     // 业务代码的入口,可以通过owner接收数据。可以直接调用getContext获得context对象,也可以通过view对象调用HomeActivity中的方法。
  }

}

activity_home.xml


<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

  xmlns:app="http://schemas.android.com/apk/res-auto"

  xmlns:tools="http://schemas.android.com/tools"

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:layout_margin="16dp"

  tools:context=".home.HomeActivity">

</androidx.constraintlayout.widget.ConstraintLayout>

运行module,效果如下图:

Android Bulle介绍3-Bulle中的MVP模式