2016-11-07 2 views
0

Androidのデータバインディングを使用して画像を設定したいと思います。私はこれについて多くのチュートリアルを読んできましたが、画像はまだ表示されません。 - + URLはそれほど問題はグライドではなく、印刷されることはありません画像をデータバインディングでロードする

@BindingAdapter({"app:imageUrl"}) 
    public static void loadImage(ImageView view, String url) { 

     Log.i("III", "Image - " + url); 
     Context context = view.getContext(); 
     Glide.with(context).load(GlobalValues.img_start_url + url).into(view); 
    } 

私も「III」、「画像」はことを言及する必要があります:私のモデルインサイド

私は、次のような方法があります。

<data> 

    <variable 
     name="feeling" 
     type="bg.web3.helpkarma.ViewModels.Feeling"/> 

</data> 

<ImageView 
      android:layout_width="wrap_content" 
      android:id="@+id/icon" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="16dp" 
      app:imageUrl="@{feeling.maleIcon}"/> 

とmaleIconは、URL文字列

@SerializedName("male_icon") 
@Expose 
private String maleIcon; 
+0

あなたは '@BindingAdapter({" bind:imageUrl "})'または '@BindingAdapter({" app:imageUrl "})'、[ここ](http://www.androidgig.com/image) -loading-with-databinding-in-android /)は小さなチュートリアルです。それを確認してください –

+0

私は2つのオプションを試しました。それでも動作しません。 – charbinary

+0

奇妙なエラーです。なぜそれがうまくいかないのか分かりません。 @RaviRupareliyaに応答して、BindingAdapterの引数に名前空間を指定すると、特別な警告が表示されます。 @BindingAdapter( "imageUrl")を読み込む必要があります。 –

答えて

0

Androidのデータバインディング@BindingAdapterが唯一のAndroid名前空間またはnoneをサポートしています:

これが私のxmlです。だから、

@BindingAdapter("imageUrl") 
public static void loadImage(ImageView view, String url) { 
    [...] 
} 

さらにloadImage()feeling.maleIconがnullの場合に呼び出されることはありませんとの定義を置き換えます。

+0

共有したコードでは機能しません。それが動作する唯一の方法は、@BindingAdapter( "maleIcon")とモデルのプロパティが同じ名前を持つ場合です。 – charbinary

関連する問題