ligação de dados - aviso safeUnbox
depois de atualizar a versão AS gradle para a 2.3.0, a ligação de dados encontra um aviso:
Aviso: selectMap [index] é um campo em caixa, mas precisa ser retirado da caixa para executar selectMap [index]? @android: cor / branco: @android: cor / transparente. Isso pode causar o NPE, de modo que a Ligação de dados o descompacta com segurança. Você pode alterar a expressão e agrupar explicitamente selectMap [index] com safeUnbox () para impedir o aviso
selectMap é um ObservableMap, então procuro esse aviso, mas recebi apenas algumas discussões e não o corrigi
Android Studio 2.3.0-alpha1: ligação de dados + unboxing causa erros de compilação
Ligação de dados - o objeto de dados é nulo na API 15-18
Sigo o caminho nos links, modificoselectMap[index]
parasafeUnbox(selectMap[index])
mas obteve erro de sintaxe.
Então, alguém sabe como corrigir esse aviso?
Edit: Aqui está o código do arquivo 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>
A compilação é bem-sucedida, mas o aviso sai (eu passei acima).