1

新しいデータ バインディング 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 で1 つの回答が見つかりましたが、これは私の質問の回答ではありません。

4

1 に答える 1

2

コードベースに public static メソッドを作成し、@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
    }
}
于 2015-11-14T23:21:29.483 に答える