我开始使用新的数据绑定API。我想绑定TextView
自定义属性,我立即更改文本和背景。到目前为止,我理解api有一个@BindingMethod
注释,但文档有点弱。
我想要这样的事情:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Important"
tools:background="@drawable/bg_badge_important"
tools:textColor="#fff"
android:id="@+id/badge"
custom:badge="@{item.badge}"/>
此item.badge
是重要或通知的字符串。对于i18n我不能直接使用这个字符串,但这将帮助我选择正确的文本和正确的背景图像。
您能给我一个小例子或参考如何使用这个属性吗?我刚刚在Stack Overflow上找到了one answer,但这并没有回答我的问题。
答案 0 :(得分:2)
只需在代码库上创建一个公共静态方法,然后使用@BindingAdapter进行注释。
以下是字体的示例:
https://plus.google.com/+LisaWrayZeitouni/posts/LTr5tX5M9mb
通过rekire编辑我最终使用了这段代码:
@BindingAdapter({"bind:badge"})
public static void setBadge(TextView textView, String value) {
switch(value) {
case "email":
textView.setText(R.string.badge_email);
textView.setBackgroundResource(R.drawable.bg_badge_email);
break;
// other cases
}
}