к переменной-предупреждению это предупреждение исчезнет, и оно все равно будет работать хорошо
обновления версии AS gradle до 2.3.0 при привязке данных появляется предупреждение:
Предупреждение: selectMap [index] - это поле в штучной упаковке, но его необходимо распаковать для выполнения selectMap [index]? @android: цвет / белый: @android: цвет / прозрачный. Это может вызвать NPE, поэтому Data Binding безопасно распакует его. Вы можете изменить выражение и явно обернуть selectMap [index] с safeUnbox (), чтобы предотвратить предупреждение
selectMap - ObservableMap, тогда я ищу это предупреждение, но получил всего несколько обсуждений и не исправил
Android Studio 2.3.0-alpha1: привязка данных + int unboxing вызывает ошибки компиляции
Привязка данных - объект данных является нулевым по API 15-18
Я следую по пути в ссылках, модифицируюselectMap[index]
вsafeUnbox(selectMap[index])
но получил синтаксическую ошибку.
Так кто-нибудь знает, как исправить это предупреждение?
Изменить: вот код файла XML
<?xml version="1.0" encoding="utf-8"?>
<data class="SupportCountryViewHolderBinding">
<variable
name="viewModel"
type="com.goodarc.care_about.activity.account.support_country.SupportCountryHolderViewModel" />
<variable
name="dataSource"
type="com.goodarc.care_about.module.assets_file.SupportCountry" />
<variable
name="selectMap"
type="android.databinding.ObservableMap<Integer, Boolean>" />
<variable
name="index"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@{selectMap[index] ? @android:color/white : @android:color/transparent}"
android:onClick="@{(v) -> viewModel.onItemSelectListener(selectMap, index)}"
android:orientation="vertical"
android:padding="20dp">
<TextView
style="@style/TitleLabel2"
android:layout_gravity="center_vertical|start"
android:text="@{dataSource.display}"
android:textColor="@{selectMap[index] ? @android:color/black : @android:color/white}"
tools:text="Taiwan (+886)" />
</LinearLayout>
Построение выполнено успешно, но вышло предупреждение (я прошёл выше).