MVVM以正确的方式使用rxjava

时间:2018-02-28 10:17:26

标签: android mvvm kotlin rx-java2 rx-android

我正在尝试在我的新Android项目中使用MVVM。此外,我正在使用rxjava来实现此目的。我使用kotlin。我已经完成了很多文档,帖子和教程。我做了一个示例应用程序尝试的东西。

活性

class MainActivity : AppCompatActivity() {

    private var vehicleInVM: VehicleInVM? = null
    var disposable: CompositeDisposable? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        vehicleInVM = VehicleInVM()
        disposable = CompositeDisposable()


        vehicleInVM?.checkVehicleNumberPlate("111")?.subscribe({ t1: Boolean?, t2: Throwable? ->
            Logger.getLogger("GP").severe("$t1")
        })?.let { disposable!!.add(it) }


    }
}

查看模型

class VehicleInVM {

    var capacity: Capacity?=null

    init {
        capacity= Capacity()
    }


    fun checkVehicleNumberPlate(string: String?): Single<Boolean>? {
        if (string == null) {
            return Single.create<Boolean> { emitter ->
                emitter.onSuccess(false)
            }
        }
        val regex = Constants.VEHICL_NUMBER_REGEX
        return Single.create<Boolean> { emitter ->
            emitter.onSuccess(string?.let { regex.matches(it) })
        }
    }



    fun getVehicleCapacity(type:String): Observable<String>? {

        return capacity?.getCapacity(type)
    }

}

拜托,您能告诉我我正在做的是实施MVVM的正确方法吗?如果没有,请建议我一个正确的方法。

PS - 请不要忘记我发现我确信可能有很多人不知道这一切,所以请先开始。

0 个答案:

没有答案