表达式不能反转,因此不能在双向绑定中使用
2022-09-02 21:30:34
我正在尝试在我的项目中实现双向绑定。
但是在布局中使用条件语句时,我遇到了错误。
我创建了模型类模型.java其中getter setter定义了。
型号.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中的编辑文本
<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>
细节碎片.java
public class DetailsFragment extends Fragment {
FragmentDetailsBinding binding;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
binding =DataBindingUtil.inflate(inflater,R.layout.fragment_details,null,false);
View view = binding.getRoot();
MyAccountDetailsViewModel viewModel = ViewModelProviders.of(this).get(MyAccountDetailsViewModel.class);
getDetails();
return view;
}
private void getDetails() {
//Server call and set value to user
binding.setUser(detailsByUser);
}
private void updateDetails() {
Log.d("newData", binding.getUser() + "");
}
}
我想要双向绑定,以便我可以更新用户详细信息。但是我收到以下错误消息
aWebsiteJavaLangObjectNull) ? ("NA") : (userDataWebsite)) cannot be inverted, so it cannot be used in a two-way binding