mvvm大表单维护手册

2019-03-11  本文已影响0人  ddsfec


一、配置

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"/>

上一篇下一篇

猜你喜欢

热点阅读