Tôi đang xem plugin Binding mới cho Android và cố gắng tích hợp nó trong một dự án.Không thể tham chiếu các trường Lớp quan sát được từ bố cục xml
Trong khi đọc về việc tạo đối tượng quan sát được, tôi gặp phải những tài liệu ObservableFields đó liên quan đến việc sử dụng khép kín đối tượng quan sát ví dụ từ tài liệu:
public class User extends BaseObservable {
public final ObservableField<String> firstName =
new ObservableField<>();
public final ObservableField<String> lastName =
new ObservableField<>();
public final ObservableInt age = new ObservableInt();
}
Trên đoạn sẽ là một thay thế:
private static class User extends BaseObservable {
private String firstName;
private String lastName;
@Bindable
public String getFirstName() {
return this.firstName;
}
@Bindable
public String getFirstName() {
return this.lastName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
notifyPropertyChanged(BR.firstName);
}
public void setLastName(String lastName) {
this.lastName = lastName;
notifyPropertyChanged(BR.lastName);
}
}
Đó là mã ít hơn đáng kể; Nhưng khi sử dụng Fields Quan sát và tài liệu tham khảo sau đó từ cách bố trí XML như ví dụ:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastName}"
android:id="@+id/lastName"/>
</LinearLayout>
</layout>
Tôi nhận được lỗi này:
../../databinding/ActivityMainBinding.java
Error:(127, 20) error: cannot find symbol variable lastName
Và đó không phải là tiết ở tất cả; Không sử dụng ObservableFields hoạt động như một sự quyến rũ.
Bất kỳ ai đối mặt với vấn đề này? Suy nghĩ?
Đăng xml cho bố cục, vui lòng? – fakataha
@atamakosi ở đây chúng tôi đi! –
Chúng ta có phải thêm mở rộng "BaseObservable" trong trường hợp đầu tiên? – Debanjan