Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用android架构组件实现登录活动架构?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我了解如何使用viewmodel,Repositories和Room将数据从数据库传输到屏幕.但是如何用POST方法实现登录活动.我是否需要从viewmodel或AuthorizationRepository创建LiveData isAuthorized?任何人都可以展示使用 android架构组件的命令方法的例子吗?

@L_674_7@

这可以是您的登录类,可能会扩展viewmodel,因此它可以保持配置更改:

@H_450_11@class LoginClass { var loginEvent = SingleLiveEvent<LoginEvent>() fun startLogin(user: String,password: String) { loginEvent.value= LoginEvent(LoginStatus.LoginStart,null,null) launch(UI) { try{ bg{ //do login process }.await() loginEvent.value= LoginEvent(LoginStatus.LoginOk,null) } catch (error: Exception){ loginEvent.value= LoginEvent(LoginStatus.LoginFailed,error.message,null) } } } data class LoginEvent(var loginStatus: LoginStatus,var errormessage: String?,var loginExTradata: Any?) enum class LoginStatus { LoginStart,LoginOk,LoginFailed } }

您可以观察登录状态以做出反应并相应地更改您的UI:

@H_450_11@val myLoginClass = LoginClass() myLoginClass.loginEvent.observe(this@Lifecycleowner,Observer { if(it==null) return@Observer when(it.loginStatus) { LoginClass.LoginStatus.LoginStart -> { //show indeterinate progress bar,disable inputs,etc } LoginClass.LoginStatus.LoginOk -> { //go to logged in activity } LoginClass.LoginStatus.LoginFailed -> { //show login Failed toast,hide progress bar,enable input,etc } } })

要开始登录,只需调用您班级的登录方法

@H_450_11@loginButton.onClick { myLoginClass.startLogin("user","password") }

从逻辑上讲,您需要更多,但您可以将其用作骨架.

SingleLiveEvent可以在这里找到:https://github.com/googlesamples/android-architecture/blob/dev-todo-mvvm-live/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/SingleLiveEvent.java

大佬总结

以上是大佬教程为你收集整理的如何使用android架构组件实现登录活动架构?全部内容,希望文章能够帮你解决如何使用android架构组件实现登录活动架构?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。