3年的wpf开发经验,自认为对数据驱动UI开发模式的使用不是问题,但当开始研究android的mvvm模式开发时,发现两年多的android开发经验已经将之前的wpf开发忘得7788了。感慨一下:人老了,记忆力就这么脆弱。

谈正题:adroid mvvm开发模式 之 viewmodel使用小麻烦。



viewmodel

public class MyViewModel extends ViewModel {    private MutableLiveData>  mUserList;    public MutableLiveDataUser>> getUserList(){
        if(mUserList == null){            return new MutableLiveData>();        }        return mUserList    }    public void addContacts(List list){
        if(mUserList.getValue() == null){            mUserList.setValue(list);        }else{            mUserList.getValue().addAll(list);            mUserList.setValue(mUserList.getValue());        }
    }
}

Activity
protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    /* 注册数据变更监听*/    model = ViewModelProviders.of(this).get(MyViewModel.class);    model.getUserList().observe(this, list -> {        Log.i(TAG, "getUserList size:" + list.size());    });
}
......
List list = new ArrayList();
...
/*更改绑定数据*/
model.addContacts(list);
   


以上是错误简写代码,让我百撕不得姐啊!

尝试好多方法监听中的log始终不得见,最后一次尝试将viewmodel中的List<>改成了Integer,直接在定义类型时初始化,发现好用。思量之后发现代码中的神来之笔额

        if(mUserList == null){            return new MutableLiveData>();        }        return mUserList
两个return 返回的不是一个对象! 无语,撕了大半天终得姐!


更多相关文章

  1. Android(安卓)设计模式 笔记 - 深入了解属性动画
  2. Android(安卓)开发之通用的 PopupWindow
  3. Android开发艺术探索
  4. Android8.0 Oreo新特性
  5. android音乐播放器开发 SweetMusicPlayer 加载歌曲列表
  6. Android(安卓)程式开发:(廿一)消息传递 —— 21.3 使用Intent发送短
  7. ios 开发之基础控件
  8. Android(安卓)开发环境安装
  9. Android开发指南(43) —— Location and Maps

随机推荐

  1. android webview 下载文件
  2. Android 判断软键盘的状态(显示,隐藏)
  3. Android之万能适配器Adapter的使用
  4. ListView 实现像Android Market那样 分页
  5. Retrofit HTTP body返回为空的情况报错 E
  6. android 判断3G WIFI网络
  7. [Android]Nuance SREC native engine vs
  8. 设置默认来电铃声 android
  9. Android 小知识点
  10. Ubuntu下Eclipse开发Android经常崩溃的解