我正在互联网上搜索如何执行新的酷Android数据绑定RadioGroup,我没有找到一篇关于它的博客文章.
它是一个简单的场景,基于所选的单选按钮,我想使用android数据绑定附加一个回调事件.我没有在xml部分找到允许我定义回调的任何方法.
就像这里是我的RadioGroup:
<RadioGroup
android:id="@+id/split_type_radio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:checkedButton="@+id/split_type_equal"
android:gravity="center"
<!-- which tag ? -->
android:orientation="horizontal">
...
</RadioGroup>
Run Code Online (Sandbox Code Playgroud)
我如何附上处理方法将被称为上RadioGroup的checkChnged事件将触发使用数据绑定?
我尝试onClick在布局文件中使用(不知道它是否相同)并在Activity中定义方法并在布局文件中使用它来定位它:
<variable
name="handler"
type="com.example.MainActivity"/>
...
<RadioGroup
android:onClick="handler.onCustomCheckChanged"
.. >
Run Code Online (Sandbox Code Playgroud)
并定义了这样的方法onCustomCheckChanged:
public void onCustomCheckChanged(RadioGroup radio, int id) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
但是,它给了我编译错误:
错误:(58,36)侦听器类android.view.View.OnClickListener与方法onClick不匹配任何方法handler.onCustomCheckChanged的签名
我见过很多博客提到它是可能的,RadioGroup但他们没有真正说出如何.我怎么处理这个data-binding?
我有这个对象
ObservableInt someNumber;
public ObservableInt getSomeNumber()
{
return someNumber;
}
public void setSomeNumber(ObservableInt number)
{
this.someNumber = number;
}
Run Code Online (Sandbox Code Playgroud)
我的AppCompatEditText在xml代码中是这样的:
<android.support.v7.widget.AppCompatEditText
android:layout_width="0dp"
android:layout_height="@dimen/agro_item_height"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="@={String.valueOf(myObject.someNumber)}"
android:gravity="center_horizontal"/>
Run Code Online (Sandbox Code Playgroud)
我有这个错误:
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
java.lang.RuntimeException: failure, see logs for details.
cannot generate view binders java.lang.NullPointerException
at android.databinding.tool.expr.MethodCallExpr.generateCode(MethodCallExpr.java:69)
at android.databinding.tool.expr.Expr.toFullCode(Expr.java:745)
at android.databinding.tool.expr.Expr.assertIsInvertible(Expr.java:767)
at android.databinding.tool.BindingTarget.addInverseBinding(BindingTarget.java:68)
at android.databinding.tool.LayoutBinder.<init>(LayoutBinder.java:228)
at android.databinding.tool.DataBinder.<init>(DataBinder.java:52)
at android.databinding.tool.CompilerChef.ensureDataBinder(CompilerChef.java:83)
at android.databinding.tool.CompilerChef.sealModels(CompilerChef.java:168)
at android.databinding.annotationprocessor.ProcessExpressions.writeResourceBundle(ProcessExpressions.java:149)
at android.databinding.annotationprocessor.ProcessExpressions.onHandleStep(ProcessExpressions.java:82)
at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.runStep(ProcessDataBinding.java:154)
at android.databinding.annotationprocessor.ProcessDataBinding$ProcessingStep.access$000(ProcessDataBinding.java:139)
at android.databinding.annotationprocessor.ProcessDataBinding.process(ProcessDataBinding.java:66)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:794)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:705)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1035)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1176) …Run Code Online (Sandbox Code Playgroud) 当表单中的所有字段都完成时,我想启用 AppCompatButton。
我正在使用 ViewModel 并希望使用数据绑定来启用它。
当视图上的文本更改以更新视图模型中的对象数据时,我有两种方法会触发。
我遇到的问题是当两个字段都完成时,我需要在布局上启用一个按钮以允许它们继续。
一个例子是登录,当用户名和密码字段填满时,登录按钮变为启用。