模型类中的更改未在View中反映

时间:2018-03-23 08:54:32

标签: android android-databinding

这是我的模特课。我有一个变量currentUser。当我更改当前用户时,recyclelerview列表应该刷新。但是,目前变量值正在发生变化,但视图并不令人耳目一新。

  public class DashBoardViewModel extends BaseObservable {
        private Activity context;
        public static Enum currentUser = com.stampmemories.app.AppConstants.USER_ROLES.PROVIDER;

My Binding适配器是这样的:

 @BindingAdapter({"menu_recycler", "current_user"})
    public static void bindNavigationMenu(RecyclerView recyclerView, Activity context, Enum user) {
        recyclerView.setLayoutManager(new LinearLayoutManager(context));
        recyclerView.setHasFixedSize(true);
        ArrayList<DrawerModel.Drawer.Sub_menu> navMenuList = new ArrayList<>();
        NavMenuAdapter adapter = new NavMenuAdapter(context, navMenuList);
        recyclerView.setAdapter(adapter);
        if (user == USER_ROLES.CUSTOMER)
            navMenuList.addAll(CommonFunction.getMenuList(context, false));
        else if (user == USER_ROLES.PROVIDER)
            navMenuList.addAll(CommonFunction.getMenuList(context, true));
        adapter.notifyDataSetChanged();
    }

1 个答案:

答案 0 :(得分:0)

当您更改RGB时,您需要致电currentUsernotifyChange()。一个好的做法是将notifyPropertyChanged(BR.currentUser)包含一个可以调用这两个方法之一的setter(前者通知currentUser上的所有属性都已更改,后者只是一个已经改变了。)< / p>