databinding显示为null的特殊情况以及多种姿势的处理办法

app:text="@{model.nickname??@string/nologin}"
@{@string/young_zhiye(model.occupation)??@string/young_zhiye(``)```

上面的代码如果进入app能马上执行setModel()那么会完全正常的显示为未登录,

但是有一种情况是模型可能要过一段时间才调用setModel,会导致app:text="@{@string/young_zhiye(model.occupation)??@string/young_zhiye(``)显示为职业显示为:null
那么需要改成这样,先判断model是否等于空!

第一次修改
app:text="@{model!=null?@string/young_zhiye(model.occupation):``}"

xml代码如下:

<LinearLayout
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:orientation="vertical">

                                <TextView
                                    android:layout_width="wrap_content"
                                    app:text="@{model!=null&amp;&amp;model.title!=null?model.title:@string/young_tiele_empty}"
                                    android:layout_height="wrap_content"
                                    android:text=""
                                    android:textColor="#999999"
                                    android:textSize="13sp" />

                                <TextView
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:text="职业:"
                                    app:text="@{model!=null?(@string/young_zhiye(model.occupation)??@string/young_zhiye_empty):@string/young_zhiye_empty}"
                                    android:textColor="#999999"
                                    android:textSize="13sp"
                         />

                            </LinearLayout>
第二次修改

经过第二次修改,变成了下面的这个样子才能解决为null又要使用个性化占位符的情况

app:text="@{model!=null?(@string/young_zhiye(model.occupation??@string/zanweitianxie)):@string/young_zhiye(@string/zanweitianxie)}"

表示如果model为空或者model.occupation为空就显示职业:暂未填写

第三次修改

第三次修改,如果服务器返回的是空字符串""那么这个写法也没法显示这种个性化为空 于是乎又改成了这样才能将才能解决问题。。。

app:text="@{model!=null?(TextUtils.isEmpty(model.occupation)?@string/young_zhiye(@string/zanweitianxie):@string/young_zhiye(model.occupation)):@string/young_zhiye(@string/zanweitianxie)}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值