Tag: android databinding

android:recyclerview中的条目

我已经使用listview与条目属性如下所示: <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:entries="@array/fi"/> 现在我将其转换为RecyclerView <android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent" /> 我想知道在RecyclerView是否有android:entries属性? 或者其他任何属性而不是条目?

在android中使用数据绑定在android:src中为ImageView设置drawable资源ID

我试图设置可绘制的资源ID到android:使用数据绑定ImageView的src 这是我的目标: public class Recipe implements Parcelable { public final int imageResource; // resource ID (eg R.drawable.some_image) public final String title; // … public Recipe(int imageResource, String title /* … */) { this.imageResource = imageResource; this.title = title; } // … } 这是我的布局: <?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> <variable name="recipe" type="com.example.android.fivewaystocookeggs.Recipe" /> </data> […]

使用Android数据绑定创build双向绑定

我已经实现了新的Android数据绑定,并且实现后意识到它不支持双向绑定。 我试图解决这个手动,但我努力寻找一个好的解决scheme时使用绑定到EditText。 在我的布局中,我有这样的观点: <EditText android:id="@+id/firstname" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textCapWords|textNoSuggestions" android:text="@{statement.firstName}"/> 另一种看法也是显示结果: <TextView style="@style/Text.Large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{statement.firstName}"/> 在我的片段中,我创build了这样的绑定: FragmentStatementPersonaliaBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_statement_personalia, container, false); binding.setStatement(mCurrentStatement); 这个工作,并把当前值firstName在EditText中。 问题是如何在文本更改时更新模型。 我试着在EditText上放置一个OnTextChanged监听器并更新模型。 这创build了一个循环杀死我的应用程序(模型更新更新GUI,它调用textChanged时间无限)。 接下来,我试图只在发生如下真实变化时通知: @Bindable public String getFirstName() { return firstName; } public void setFirstName(String firstName) { boolean changed = !TextUtils.equals(this.firstName, firstName); this.firstName = firstName; if(changed) { notifyPropertyChanged(BR.firstName); } } […]

使用包含标签的Android数据绑定

更新说明: 上面的例子工作正常 ,因为1.0-rc4版本修复了需要不必要variables的问题。 原始问题: 我完全按照文档中所描述的那样工作: main.xml中: <layout xmlns:andr… <data> </data> <include layout="@layout/buttons"></include> …. buttons.xml: <layout xmlns:andr…> <data> </data> <Button android:id="@+id/button" …." /> MyActivity.java: … binding = DataBindingUtil.inflate… binding.button; ->cannot resolve symbol 'button' 如何获得button?

Android数据绑定使用“&&”逻辑运算符

我正尝试使用Android数据绑定在xml中使用“&&”运算符, android:visibility="@{(bean.currentSpaceId == bean.selectedSpaceId **&&** bean.currentSpaceId > 0)? View.VISIBLE: View.GONE}" 但我得到了编译错误: 错误:任务':app:dataBindingProcessLayoutsDevDebug'的执行失败。 org.xml.sax.SAXParseException; systemId:file:/Users/path/app/build/intermediates/res/merged/dev/debug/layout/fragment_space.xml; lineNumber:106; columnNumber:89; 实体名称必须紧跟在实体引用中的“&”之后。 和红色突出显示错误在android工作室“非转义&或非终止字符”。 那么我该如何解决这个问题呢? 编辑:find答案,这些人物需要逃脱: '&' – >'&amp;' '<' – >'&lt; '>' – >'&gt';

如何使用Fragment的数据绑定

我试图从官方的谷歌文档https://developer.android.com/tools/data-binding/guide.html数据绑定的例子 除了我试图将数据绑定应用于片段而不是活动。 我正在编译的错误 Error:(37, 27) No resource type specified (at 'text' with value '@{marsdata.martianSols}. onCreate的片段如下所示: @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); MartianDataBinding binding = MartianDataBinding.inflate(getActivity().getLayoutInflater()); binding.setMarsdata(this); } onCreateView的片段看起来像这样: @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.martian_data, container, false); } 部分我的布局文件的片段如下所示: <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> […]

Kotlin-android:未解决的引用数据绑定

我有以下使用新的数据绑定库Java编写的片段类 import com.example.app.databinding.FragmentDataBdinding; public class DataFragment extends Fragment { @Nullable private FragmentDataBinding mBinding; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_data, container, false); return mBinding.getRoot(); } } 它编译和运行良好。 我试图在Kotlin中重写它,并提出如下: import com.example.app.databinding.FragmentDataBdinding class ProfileFragment : Fragment() { private var mBinding: FragmentDataBinding? = null override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, […]

如何在Android Studio 3.0.0中使用数据绑定和Kotlin

我刚开始使用Android Studio 3.0.0,但每次尝试构build我的项目时都会出现此错误: Error:Circular dependency between the following tasks: :app:compileDebugKotlin +— :app:dataBindingExportBuildInfoDebug | \— :app:compileDebugKotlin (*) \— :app:kaptDebugKotlin \— :app:dataBindingExportBuildInfoDebug (*) (*) – details omitted (listed previously) 我在用 kapt "com.android.databinding:compiler:2.2.0" 在我使用之前 androidProcessor "com.android.databinding:compiler:2.2.0" 它工作得很好…我做错了什么? 谢谢!