Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android数据绑定空结合运算符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在数据绑定中使用Null合并运算符.我有一个复合drawable,我需要显示三个drawable图标之一,具体取决于变量是null,true还是false.

XML

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://scheR_356_11845@as.android.com/apk/res/android">

<data>

    <import type="android.view.View" />

    <variable
        name="dataModel"
        type="com.my.app.MyDataModel" />
</data>

<TextView
    android:id="@id/mCompoundDrawable"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawableRight="@{(dataModel.isSELEcted ? @drawable/SELEcted : @drawable/not_SELEcted) ?? @drawable/not_specified }"
    android:focusable="true"
    android:gravity="center_vertical"
    android:scrollHorizontally="false"
    android:text="@{dataModel.text}" />
</layout>

数据模型

public class MyDataModel
{
    public String text;
    public Boolean isSELEcted;

    public MyDataModel(String text,Boolean isSELEcted)
    {
        this.text = text;
        this.isSELEcted = isSELEcted;
    }
}

我通过调用调用它:

@H_508_9@myDataModel dataModel = new MyDataModel(text,null); binding.setDataModel(dataModel);

我以

android:drawableRight="@{(dataModel.isSELEcted ? @drawable/SELEcted : @drawable/not_SELEcted) ?? @drawable/not_specified }

实际上与以下内容相同:

android:drawableRight="@{dataModel.isSELEcted != null? (dataModel.isSELEcted ? @drawable/SELEcted : @drawable/not_SELEcted) : @drawable/not_specified }

但是,我在运行时遇到以下异常:
                                                                 Java.lang.NullPointerException:尝试在空对象引用上调用方法Boolean java.lang.Boolean.BooleanValue()’

我想知道如何克服这个错误.谢谢!

解决方法

(1)(dataModel.isSELEcted?@ drawable / SELEcted:@ drawable / not_SELEcted)?? @绘制/ NOT_SPECIFIED

是不一样的

(2)dataModel.isSELEcted!= null? (dataModel.isSELEcted?@ drawable / SELEcted:@ drawable / not_SELEcted):@ drawable / not_specified

在第一个表达式中,您得到错误,因为运算符?:在空指针上隐式调用dataModel.isSELEcted.BooleanValue().

无论如何,我相信在这种情况下你无法使用空合并运算符,所以我只想使用第二个表达式.

大佬总结

以上是大佬教程为你收集整理的Android数据绑定空结合运算符全部内容,希望文章能够帮你解决Android数据绑定空结合运算符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。