问题标签 [android-binding-adapter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
124 浏览

android - Android Xamarin AAR Binding 封装类型

我有一个.aar想在 Xamarin Android 中使用的第三方库。所以我创建了一个新的Android Bindings Library,添加了aar-library 并将文件更改为Build action如下所述:https ://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/binding-an -aaraarLibraryProjectZip

没有其他任何改变,我希望该项目能够编译并生成一个dll文件。相反,我得到很多错误说Error CS0542 'xy': member names cannot be the same as their enclosing type。当我跳转到错误的根源时,我在 Visual Studio 生成的代码中发现错误,类看起来像:

我无法修改库的源代码。我该怎么做才能Binding Library成功构建?

0 投票
0 回答
54 浏览

android - 带有列表的 BindingAdapter

我想使用带List参数的 BindingAdapter,但是当我尝试编译它时,它会抛出这个错误,

找不到接受参数类型“java.util.List<Alert>”的 <androidx.cardview.widget.CardView app:setVisiblityByList> 的设置器

我的方法:

}

我的 XML:

我也尝试过fun setVisiblityByList(view: View, l: List<Alert>?)同样的结果。这似乎是Java的类型擦除引起的问题。有什么办法可以让它工作吗?

0 投票
0 回答
25 浏览

android - 强制数据绑定以获取所有中间媒体 livedata / mediatorlivedata 更改

我的问题是我的数据绑定值仅从我的 MediatorLiveData 获取最新更新passwortStatus并跳过所有中间值。这会导致奇怪的视图问题,因为并非所有视图都正确更新。

这是一个例子:

当我在编辑文本中键入内容时,我passwordCalculator会执行并查看是否满足某些特定条件。例如,当我写“1Ab”(数字、BigLetter、SmallLetter)时,passwordStatus livedata值输出:PasswordStatus.HasDigit、PasswordStatus.HasLowerCase、PasswordStatus.HasUpperCase。

现在的问题是:passwordStatus在我的片段中观察这个给了我所有上述值(PasswordStatus.HasDigit、PasswordStatus.HasLowerCase、PasswordStatus.HasUpperCase),我只在我的数据绑定变量中得到 PasswortStatus.HasUpperCase。

片段观察

布局内的数据绑定观察

数据绑定状态调试

密码计算器

所以我的最后一个问题是:如何强制数据绑定获取所有中间值(例如 PasswordStatus.HasDigit、PasswordStatus.HasLowerCase、PasswordStatus.HasUpperCase),而不仅仅是最新值(PasswordStatus.HasUpperCase)?

0 投票
1 回答
35 浏览

android - 如何使用自定义的onClick进行数据绑定

我正在使用数据绑定并且无法解决多个快速单击问题。我不想在每次点击中都添加一个逻辑,我想创建一个解决方案并期望它在我的整个项目中都能正常工作。

我在这里找到了一种解决方案。该页面的代码片段如下:

并使用扩展功能:

最后,对于任何视图,我们都可以简单地调用:

这太棒了。但它仅适用于我将 setOnClickListener 调用到视图但我正在使用数据绑定的情况。我在哪里使用这样的东西:

我知道如果我可以创建一个绑定适配器,我就能解决这个问题。但是,我无法制作一个有效的。我应该在这里放什么代码:

这样我就可以在我的xml(数据绑定)中使用:

我怎样才能做到这一点?请帮忙。谢谢

0 投票
0 回答
59 浏览

android - Android BindingAdapter for AutoCompleTextView“找不到事件”问题

我使用Material Guide来设置我AutoCompleTextView的 ,当我在其上实现双向数据绑定时遇到了一个问题(单向工作正常)。

我得到了这个构建错误:Could not find event 'android:selectedItemPositionAttrChanged' on View type 'android.widget.AutoCompleteTextView'

在这里参考了事件名称,该属性android:selectedItemPositon确实显示在 XML 编辑器上,但仍然构建失败。

PS:我想用POSITION而不是TEXT绑定。

0 投票
1 回答
31 浏览

android - Glide Binding Adapter 不显示 url 图片

所以我想通过 Unsplash API 在我的视图上显示图片。问题是 API 调用正在工作,但图片没有显示。它所显示的只是错误占位符。

在此处输入图像描述

这是绑定适配器

欢迎任何想法,谢谢。

0 投票
2 回答
75 浏览

android - “DataBinding”如何检查 xml 中按钮的 onClick 是否为 editText isEmpty 和 setError

我正在尝试实现课程 ViewModel 和数据绑定,在下面的 xml 中,我想使用TextUtils.isEmpty()方法来检查 editText 是否为空然后设置错误,当我搜索这个时我发现这个问题我在标签中添加了 importing TextUtils,但是我仍然无法从按钮onClick调用 editText "name_text"来检查它并设置错误

activity_main.xml

编辑:

我像这样编辑了onClick attr,xml中没有错误但我无法将消息传递给setError("Cannot be empty")方法

0 投票
0 回答
80 浏览

android-databinding - 在 ViewPager2 之前附加的 TabLayoutMediator 有一个适配器

java.lang.RuntimeException:无法启动活动 ComponentInfo{com.amco.scanai/com.amco.scanai.activities.profile.ProfileActivity}:java.lang.IllegalStateException:TabLayoutMediator 在 ViewPager2 在 android.app.ActivityThread 有适配器之前附加android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 上 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257) 上 android.app.servertransaction.TransactionExecutor 上的 .performLaunchActivity(ActivityThread.java:3114)。 executeCallbacks(TransactionExecutor.java:108) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1948) 在 android.os.Handler.dispatchMessage (Handler.java:106) 在 android.app 的 android.os.Looper.loop(Looper.java:214)。ActivityThread.main(ActivityThread.java:7050) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494) 在 com.android 的 java.lang.reflect.Method.invoke(Native Method)。 internal.os.ZygoteInit.main(ZygoteInit.java:965) 原因:java.lang.IllegalStateException: TabLayoutMediator 在 ViewPager2 之前附加在 com.google.android.material.tabs.TabLayoutMediator.attach(TabLayoutMediator.java:117 ) 在 com.amco.scanai.utilities.BindingAdapters.setPager2(BindingAdapters.java:163) 在 com.amco.scanai.databinding.ActivityProfileBindingImpl.executeBindings(ActivityProfileBindingImpl.java:207) 在 androidx.databinding.ViewDataBinding.executeBindingsInternal(ViewDataBinding. java:473) 在 com.amco.scanai.mvvm.base.BaseActivity 的 androidx.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:445)。performDataBinding(BaseActivity.java:105) 在 com.amco.scanai.mvvm.base.BaseActivity.onCreate(BaseActivity.java:60) 在 com.amco.scanai.activities.profile.ProfileActivity.onCreate(ProfileActivity.java:25)在 android.app.Activity.performCreate(Activity.java:7327) 在 android.app.Activity.performCreate(Activity.java:7318) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) 在 android.app。 ActivityThread.performLaunchActivity(ActivityThread.java:3094) 在 android.app.servertransaction.TransactionExecutor 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257) .executeCallbacks(TransactionExecutor.java:108) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 在 android.app。ActivityThread$H.handleMessage(ActivityThread.java:1948) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main (ActivityThread.java:7050)

我将 ViewPager2 与 Tab 布局一起使用,通过使用绑定适配器我试图将适配器绑定到 ViewPager,然后将 ViewPager 绑定到 Tab 布局。但它不断给出上述错误。以下是代码。

Profile_Activity.xml

ProfileViewModel.java

BindingAdapters.java

0 投票
3 回答
534 浏览

android - Android数据绑定找不到接受参数类型*的*的setter

我试图在数据绑定布局中声明一个变量,它的类型是整数数组,但是在构建项目时出现错误

找不到接受参数类型“int[]”的 <android.widget.LinearLayout app:availableGradesIndexes> 的设置器

如果绑定适配器提供了设置器,请检查适配器是否正确注释以及参数类型是否匹配。

xml中的变量声明

绑定适配器

用法

我还试过什么

试图将绑定适配器方法的类型声明为IntArray喜欢fun LinearLayout.bindGradeWithMarks(availableGradesIndexes: IntArray)

还尝试了List<Int>likefun LinearLayout.bindGradeWithMarks(availableGradesIndexes: List<Int>)和variable类型List&lt;Int&gt;

还尝试将绑定变量类型设置为Integerand Integer[]and alsoList&lt;Integer&gt;

所以问题是如何使用绑定适配器绑定整数列表或数组?!

0 投票
1 回答
30 浏览

android - BindingAdapter 加载自定义动画

我只是想实现以下任何一项

我试过下面的代码。

达不到。