美文网首页
2019-12-09

2019-12-09

作者: ambe_gzy | 来源:发表于2019-12-10 10:09 被阅读0次

    踩坑笔记

    • app、common model下有相同名字的资源,容易造成程序调用的是app model的资源,但却修改了common的资源,造成了ui修改失败的问题

    登录功能实现

    1个activity 3个fragment
    LoginActivity LoginFragment
    RegisterFragment
    ForgetFragment

    通过viewmodel进行数据共享

    • 登录页面
      点击登录按钮,逻辑:
      1.进行账号判空(除去空格)。
      2.进行密码判空(除去空格)。
      3.进行账号判空(包含空格)。
      4.进行密码判空(包含空格)。
      5.执行登录操作(异步操作,并在获取结果以后将数据保存在本地)。
      6.登录操作执行完成后,activity对登录返回结果进行操作

    点击登录按钮,代码实现:
    1.activity定义登录按钮,点击登录按钮,调用viewmodel的方法。
    2.viewmodel中定义对应的livedata:包括loadingLivedata,作用是登录操作的时候控制等待页面的显示;errortipsStateLivedata,作用是保存登录返回结果的错误码,然后在界面上显示登录结果。
    3.viewmodel中调用VMManager的方法,VMManager中定义的是账号登录操作,包含请求头的定义等,在VMManager中如果登录成功,会执行保存用户信息,通知activity跳到home页面的操作,并回调listener执行viewmodel中的代码,如果登录失败,则只执行listener回调viewmodel的代码。
    4.viewmodel获取到登录结果,更新livedata数据。
    5.activity监听livedata,监听到livedata数据发生变化,执行对应操作,如登录失败时显示登录失败原因等。

    其余页面类似。

    所有activity均继承了包含登录状态监听者的父类,并实现sign in方法,当登录操作成功的时候会执行sign in的方法。

    相关文章

      网友评论

          本文标题:2019-12-09

          本文链接:https://www.haomeiwen.com/subject/rmbbgctx.html