数据绑定:可见取决于列表的大小(通过 XML)?
Data binding: visible depend on list's size (via XML)?
Android Studio 3.1,java 1.8,Gradle 4.5。
这是我的 activity:
public class OrdersActivity extends AppCompatActivity {
ObservableArrayList<OrderEntry> orderList = new ObservableArrayList<>();
@Override
public void setOrderList(List<OrderEntry> list) {
this.orderList.clear();
this.orderList.addAll(list);
}
}
我想在布局中显示列表的大小。所以这里的布局是 xml.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="handler"
type="com.myproject.ui.OrdersActivity" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="@{handler.orderList.size > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
</layout>
但是我得到错误:
- 出了什么问题:
任务 ':app:compileDebugJavaWithJavac' 执行失败。
android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:Could not find accessor com.myproject.ui.OrdersActivity.orderList
file:\app\src\main\res\layout\orders.xml
loc:118:38 - 118:54
****\ data binding error ****
你试过制作它 public 还是用 public getOrderList()
包裹它?
Android Studio 3.1,java 1.8,Gradle 4.5。
这是我的 activity:
public class OrdersActivity extends AppCompatActivity {
ObservableArrayList<OrderEntry> orderList = new ObservableArrayList<>();
@Override
public void setOrderList(List<OrderEntry> list) {
this.orderList.clear();
this.orderList.addAll(list);
}
}
我想在布局中显示列表的大小。所以这里的布局是 xml.
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="handler"
type="com.myproject.ui.OrdersActivity" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="@{handler.orderList.size > 0 ? View.VISIBLE : View.GONE}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
</layout>
但是我得到错误:
- 出了什么问题:
任务 ':app:compileDebugJavaWithJavac' 执行失败。
android.databinding.tool.util.LoggedErrorException: Found data binding errors. ****/ data binding error ****msg:Could not find accessor com.myproject.ui.OrdersActivity.orderList file:\app\src\main\res\layout\orders.xml loc:118:38 - 118:54 ****\ data binding error ****
你试过制作它 public 还是用 public getOrderList()
包裹它?