Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 表达式不能反转,因此不能在双向绑定中使用_Java_Android_Data Binding - Fatal编程技术网

Java 表达式不能反转,因此不能在双向绑定中使用

Java 表达式不能反转,因此不能在双向绑定中使用,java,android,data-binding,Java,Android,Data Binding,我试图在我的项目中实现双向绑定 但我在布局中使用条件语句时出错了 我已经创建了模型类model.java,其中定义了getter setter model.java public class Model { public String name; public string id; public String getWebsite() { return website; } public void setWebsite(String w

我试图在我的项目中实现双向绑定

但我在布局中使用条件语句时出错了

我已经创建了模型类model.java,其中定义了getter setter

model.java

public class Model {
    public String name;
    public string id;

public String getWebsite() {
            return website;
        }

public void setWebsite(String website) {
            this.name = website;
        }


public int getId() {
            return name;
        }

public void setId(String id) {
            this.id = id;
        }
}
fragment_details.java中的Edittext

<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"
    tools:context=".view.fragment.CompanyDetailsFragment">

 <data>
        <variable
            name="modelData"
            type=".Model" />

    </data>
    <androidx.coordinatorlayout.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="@={modelData.id}"/>

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="text"
            android:text="@={modelData.website ?? "NA"}"/>

    </androidx.coordinatorlayout.widget.CoordinatorLayout>

</layout>

我需要双向绑定,以便更新用户详细信息。 但我收到了以下错误消息

aWebsiteJavaLangObjectNull) ? ("NA") : (userDataWebsite)) cannot be inverted, so it cannot be used in a two-way binding

尝试使用
modelData.website
变量作为可观察或可变的LiveData,默认值为“NA”,然后将该变量绑定到xml,如下所示:

xml绑定

android:text="@={modelData.website}"
可观察到的java

public ObservableField<String> website = new ObservableField<>();
公共ObserveField网站=新ObserveField();
之后,只需根据需要将您的值设置为website


希望这有帮助,祝你好运

如果您想要双重绑定,您可以使用@+{…},双重绑定必须授予该值唯一性,如果字段的值不唯一,请尝试@{…},删除“+”

有一条类似的消息,但使用了Kotlin,修复它的方法是对我使用的数据类中的绑定值使用
var
而不是
val
。希望这对某人有帮助

public ObservableField<String> website = new ObservableField<>();