И назовите это так:
аюсь устранить все предупреждения моего Android-приложения, и одно из них таково:
viewModel.value - это поле в штучной упаковке, но оно должно быть распаковано для запуска android: флажок. Это может вызвать NPE, поэтому Data Binding безопасно распакует его. Вы можете изменить выражение и явно обернуть viewModel.value с safeUnbox (), чтобы предотвратить предупреждение
Где значение является общимObservableField
это происходит из супер класса:
public abstract class BaseDataTypeViewModel<T> extends BaseObservable {
public final ObservableField<T> value = new ObservableField<>();
...
}
И распространяется где-то какBoolean
:
public class CheckBooleanDataTypeViewModel extends BaseDataTypeViewModel<Boolean> {
...
}
Я видел напривязка данных - предупреждение safeUnbox что предупреждения случаются, потому что этоBoolean
и неboolean
поэтому я попытался добавить это:android:checked="@={safeUnbox(viewModel.value)}"
вместоandroid:checked="@={viewModel.value}"
но тогда я получил сообщение о том, что не могу инвертироватьsafeUnbox()
метод.
**** / ошибка связывания данных. какой метод следует использовать при использовании его в выражениях двустороннего связывания
Я правильно понимаю две раздельные проблемы, но должен ли я жить с предупреждением, чтобы избежать ошибки, или это решение, позволяющее избежать как предупреждения, так и ошибки? Что насчет@InverseMethod
речь идет? Мне не удалось добавить эту аннотацию, потому что метод происходит из пакета Android.