gpt4 book ai didi

android - 如何在Android数据绑定(bind)中使用对象的方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:37 24 4
gpt4 key购买 nike

假设我有这个对象:

public class Field
{
List<String> list;
public Field()
{
list = new ArrayList();
}
public boolean isOnTheList(String someText)
{
return list.contains(someText);
}
}

现在我想在具有这样绑定(bind)的 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">

<data>

<import type="android.view.View"/>

<variable
name="field"
type="com.greendao.db.Field"/>

<variable
name="user"
type="com.package.User"/>
</data>

<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="@{field.isOnTheList(user.name)?View.VISIBLE:View.GONE}"
tools:context=".advisor.new_visit_report.activities.FieldsSelectionActivity"> ...

问题是它不起作用。任何人已经尝试过这个?

最佳答案

如果其他一切都设置正确,我建议编辑您的方法以直接返回 View.VISIBLEView.GONE:

public int isOnTheList(String someText) {
return list.contains(someText) ? View.VISIBLE : View.GONE;
}

在xml中使用:

android:visibility="@{field.isOnTheList(user.name)}

关于android - 如何在Android数据绑定(bind)中使用对象的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com