Articles of привязка данных

Возможная причина для «Ошибка: невозможно создать привязки в представлении java.lang.NullPointerException»

Я использую Android Studio для своих проектов Android. Я столкнулся с проблемой, когда сбои сбоев со странной stacktrace, вот так: Error:Execution failed for task ':app:compileDevDebugJavaWithJavac'. java.lang.RuntimeException: failure, see logs for details. cannot generate view binders java.lang.NullPointerException at android.databinding.tool.reflection.ModelMethod.isBoxingConversion(ModelMethod.java:155) at android.databinding.tool.store.SetterStore.isBetterParameter(SetterStore.java:946) at android.databinding.tool.store.SetterStore.getBestSetter(SetterStore.java:838) И казалось, что привязка данных полностью разрушилась. Я делал рефакторинг раньше и перемещал […]

Кнопка привязки данных не работает

activity_layout.xml <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <import type="android.view.View" /> <variable name="callback" type="com.buscom.ActionCallBack" /> </data> <LinearLayout xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/ll_oml" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/grey_50" android:orientation="vertical"> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="@{(v) -> callback.onClick(v)}" android:text="Menu" /> </android.support.design.widget.CoordinatorLayout> </LinearLayout> </layout> ActionCallBack.java Это интерфейс, который я реализую в MainActivity public interface ActionCallback { void onClick(View view); } MainActivity.java @Override protected […]

Двусторонняя привязка данных в EditText

У меня есть этот объект ObservableInt someNumber; public ObservableInt getSomeNumber() { return someNumber; } public void setSomeNumber(ObservableInt number) { this.someNumber = number; } И мой AppCompatEditText похож на этот код в xml: <android.support.v7.widget.AppCompatEditText android:layout_width="0dp" android:layout_height="@dimen/agro_item_height" android:layout_weight="1" android:inputType="numberDecimal" android:text="@={String.valueOf(myObject.someNumber)}" android:gravity="center_horizontal"/> У меня такая ошибка: Error:Execution failed for task ':app:compileDebugJavaWithJavac'. java.lang.RuntimeException: failure, see logs for details. cannot […]

Ошибка при попытке использовать привязку данных к переменной контекста с помощью BaseObservable

За этот комментарий и учебник привязки данных Android я должен иметь переменную context доступную при привязке данных: Специальная переменная с именем context создается для использования в обязательных выражениях по мере необходимости. Значение контекста – это контекст из getContext () корневого представления. Переменная контекста будет переопределена явным объявлением переменной с этим именем. Я использую класс, расширяющий […]

Android: ошибка привязки данных: не удается найти класс символов

Я начинаю использовать функцию DataBinding . Я столкнулся с проблемой. Ошибка: (21, 9) ошибка: не удается найти класс символов ContactListActivityBinding Build.gradle (Module: app) apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.letsnurture.ln_202.databindingdemo" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } […]

Связывание данных: установить свойство, если оно не равно нулю

Не могу понять … Как установить некоторое свойство представления только в том случае, если поле переменной не равно нулю? Например <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="item" type="com.test.app.Item" /> </data> <RelativeLayout android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal"> <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_centerVertical="true" android:layout_margin="16dp" android:src="@{item.getDrawable()}"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginEnd="16dp" android:layout_marginLeft="72dp" android:layout_marginRight="16dp" android:layout_marginStart="72dp" android:layout_toLeftOf="@id/action" android:layout_toStartOf="@id/action" android:orientation="vertical"> […]

Двусторонняя привязка данных с двойным значением в EditText

В Android мы можем использовать двустороннюю привязку данных с @= перед переменной. Но эта переменная является double . Поэтому для отображения в EditText мне нужно преобразовать его в String с помощью String.valueOf(pojo.value) . Если я прикрепляю = перед двусторонней привязкой данных, просто просто не компилируется. Если я присоединяю onTextChanged и устанавливаю там значение, я теряю […]

BindingAdapter пользовательский getter 2-сторонняя привязка данных

Я создал пользовательский сеттер, который задает текст enum в editText: public enum Gender { MALE, FEMALE} XML: <EditText android:layout_width="match_parent" android:layout_height="wrap_content" custom:holder="@={user.gender}" /> адаптер: @BindingAdapter ("custom:holder") public static void setHolder(EditText editText, Gender gender) { editText.setText(gender.toString()); } Из кода: binder= DataBindingUtil.bind(getView()); binder.setUser(user); Как я могу указать получателя, который возвращает объект « Gender ? Я попробовал следующий код, […]

Привязка данных android к андроиду: фоновый атрибут с использованием строкового цветового кода

У меня есть цветовой код, который хранится как строка в объекте данных с именем bean как bean ниже: public class SpaceBean extends BaseObservable { private String selectedThemeColor; @Nullable @Bindable public String getSelectedThemeColor() { return selectedThemeColor; } public void setSelectedThemeColor(String selectedThemeColor) { this.selectedThemeColor = selectedThemeColor; notifyPropertyChanged(BR.selectedThemeColor); } } Я хотел бы использовать выражение привязки данных в […]

Синхронизация данных Android не работает

Я пытаюсь сделать простой пример теста с Android Data Binding . Я хочу показать в своем фрагменте текст "test" в EditText названием "title" , но этот текст не отображается. Вот мой код: TestVM.java public class TestVM extends BaseObservable { public TestVM() {} @Bindable public String getText() { return "test"; } } fr_login.xml <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> […]

Intereting Posts