美文网首页
mvvm大表单维护手册

mvvm大表单维护手册

作者: ddsfec | 来源:发表于2019-03-11 17:45 被阅读0次


    一、配置

    android{dataBinding {

    enabled =true

    }}

    二、文件

    还有string里的就不需要了

    三、activity调用

    //加载公共根布局

    setContentView(R.layout.activity_com_static_tab_scroll);

    //建立表单的容器

    ViewGroup rightView = (ViewGroup) getWindow().getDecorView().findViewById(R.id.com_static_tab_right_ll);

    //添加一些静态的ui组件

    leftView.addView(getLarge_ClassTextView(R.layout.view_large_class_textview,"登记信息"));

    //绑定mvvm界面

    dataBind1 = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.view_14_reg_essential_infor, leftView,true);

    //旧代码会用到黄油刀

    ButterKnife.bind(this, getWindow().getDecorView());

    //查看页面所有按钮无效,就改这个常量就行了。

    setMvvmViewDisable(isHistory);

    xml:

    android:enabled="@{DataEvent.int1Enable==0?true:false}"

    //开启字段非空验证

    onClickListeners.openVerifty();//启用必填项验证

    //初始化实体,并注册流程变量,个点击事件

    initDataBean();

    dataBind1.setVariable(BR.BaseinfoEntity,base.getBaseinfo());

    postDataBind0.setVariable(BR.DataEvent,onClickListeners);

    四、mvvm方法

    1.数据字典功能

    onClickListeners=new DataEvent(getContext());//上下文不得为空

    public class DataEventextends MvvmEvent {

    public DataEvent(Context mContext) {

    super(mContext);

    }

    //重写自己需要的非公共接口

    @Override

        public void onDict(final View view, String tabname) {

    try {

    //数据字典功能,将这个类作为内部类拖进去就可以了,三级缓存、数据库,树形图,缺少文件按报红补全。

    //注意,如果遇到未处理token=-2失效代码参照绿色通道。不然线程不会终止

    new CommonSpinner(tabname, (TextView) view,true) {

    @Override

                    void returnCode(String code) {

    //dealcode,将指set到view就好了。

    dealCode(view, code);

    //这里可能需要刷新

                        postDataBind0.invalidateAll();

    }

    };

    }catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    xml:

    android:drawableRight="@{FeedBackEntity.clewcheck.equals(@string/default_null) ||FeedBackEntity.clewcheck==null? @drawable/arrow_red : @drawable/arror_gray}"

    android:onClick="@{(v)->DataEvent.onDict(v,@string/dh076)}"

    app:dict="@{FeedBackEntity.clewcheck}"

    app:tabName="@{@string/dh076}"

    2.非空校验。

    //注意onClickListeners.openVerifty();//启用必填项验证

    return onClickListeners.isAllRight();

    xml:

    app:verifyMap="@{DataEvent.VerifyViewMap}"

    app:toastString="@{@string/str_sfsza}"//吐司文字

    //注意根布局被联动子布局不会修改visable

    app:verifyTagId="@{@string/id_layout_isPor}"//标记id 被标记view这visable变=可见验证有效,

    //注意:表单外框使用这个TelescopicLinearLayout自定义控件,根布局必需第一个tv。第二个linear

    //注意:如果是edit需要在databean里面手动刷新。

    //注意:二级联动需要使用string的方法例如startswith 并且不能传"string"

    android:visibility="@{FeedBackEntity.clewcheck.startsWith(@string/str_1)?View.VISIBLE:View.GONE}"

    四、如果你们要新建页面

    基本配置

            xmlns:android="http://schemas.android.com/apk/res/android">

                name="FeedBackEntity"

                type="com.bean.FeedBackEntity"/>

                type="com.bean.MediaTEEntity"/>

    相关文章

      网友评论

          本文标题:mvvm大表单维护手册

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