带有 include 标签的可观察字段
Observable Fields with include tag
我是 android 数据绑定库的新手,我试图为我的 arrayList 设置 Observable 字段并在 xml 中访问它,但是我的 xml 有一个包含标记我想传递这些数据,我已将其设置如下。
fragment_farmers.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="java.util.ArrayList"/>
<import type="android.view.View"/>
<variable
name="fragment"
type="****.****.com.android.Fragments.FarmersFragment"
/>
<variable
name="farmers"
type="****.****.com.android.Fragments.FarmersFragment.FarmerBindData"
/>
/>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/content_farmers"
android:id="@+id/content"
app:farmers="@{farmers}"/>
...
content_farmers.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="java.util.ArrayList"/>
<import type="android.view.View"/>
<variable
name="farmers"
type="ArrayList"
/>
</data>
FarmersFragment.java
...
FarmerBindData bindData = new FarmerBindData();
binding = DataBindingUtil.inflate(inflater,R.layout.fragment_farmers, container, false);
binding.setFragment(this);
binding.setFarmers(bindData);
binding.executePendingBindings();
...
public void getFarmers() {
try {
farmers.clear();
List<JsonObject> temp = ...;
farmers.addAll(temp);
bindData.farmers.set(farmers);
} catch (Exception e) {
}
}
private class FarmerBindData{
public final ObservableField<ArrayList<JsonObject>> farmers = new ObservableField<>();
}
...
我怎样才能在 include 标签中检索这些数据 因为目前还没有用,非常感谢任何帮助。
尝试添加行
binding.executePendingBindings()
在
之后
bindData.farmers.set(farmers);
我是 android 数据绑定库的新手,我试图为我的 arrayList 设置 Observable 字段并在 xml 中访问它,但是我的 xml 有一个包含标记我想传递这些数据,我已将其设置如下。
fragment_farmers.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="java.util.ArrayList"/>
<import type="android.view.View"/>
<variable
name="fragment"
type="****.****.com.android.Fragments.FarmersFragment"
/>
<variable
name="farmers"
type="****.****.com.android.Fragments.FarmersFragment.FarmerBindData"
/>
/>
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/content_farmers"
android:id="@+id/content"
app:farmers="@{farmers}"/>
...
content_farmers.xml
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="java.util.ArrayList"/>
<import type="android.view.View"/>
<variable
name="farmers"
type="ArrayList"
/>
</data>
FarmersFragment.java
...
FarmerBindData bindData = new FarmerBindData();
binding = DataBindingUtil.inflate(inflater,R.layout.fragment_farmers, container, false);
binding.setFragment(this);
binding.setFarmers(bindData);
binding.executePendingBindings();
...
public void getFarmers() {
try {
farmers.clear();
List<JsonObject> temp = ...;
farmers.addAll(temp);
bindData.farmers.set(farmers);
} catch (Exception e) {
}
}
private class FarmerBindData{
public final ObservableField<ArrayList<JsonObject>> farmers = new ObservableField<>();
}
...
我怎样才能在 include 标签中检索这些数据 因为目前还没有用,非常感谢任何帮助。
尝试添加行
binding.executePendingBindings()
在
之后bindData.farmers.set(farmers);