【问题标题】:Data binding: visible depend on list's size (via XML)?数据绑定:可见取决于列表的大小(通过 XML)?
【发布时间】:2018-01-25 10:53:50
【问题描述】:

Android Studio 3.1、java 1.8、Gradle 4.5。

这是我的活动:

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:发现数据绑定错误。 ****/数据绑定错误****msg:找不到访问器com.myproject.ui.OrdersActivity.orderList 文件:\app\src\main\res\layout\orders.xml 地点:118:38 - 118:54 ****\数据绑定错误****

【问题讨论】:

    标签: android-databinding


    【解决方案1】:

    您是否尝试将其公开或使用公共getOrderList() 包装它?

    【讨论】:

    • 是的,我必须添加 public。所以有了这个 public ObservableArrayList orderList = new ObservableArrayList();工作正常。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多