2016-07-25 4 views
0

Привет Я пытаюсь обновить imageview с привязкой данных, но я получаю, как это сделать правильно.Обновление привязки android updateviewview

мой вар

@BindingAdapter({"bind:someImage"}) 
     public void loadIt(ImageView view, String imageUrl) { 
      Picasso.with(view.getContext()) 
        .load(getSomeImage()) 
        .placeholder(android.R.drawable.alert_dark_frame) 
        .into(view); 
} 

public void setSomeImage(){ 
     notifyPropertyChanged(BR.someImage); 
    } 

мой макет

<ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/imagePath" 
     app:imageUrl="@{var.someImage}"/> 

У меня есть поиск, но не могу найти решение .... ссылки = link1, Link2, Link 3

ответ

3

вы используете неправильное свойство для вызова метода привязки, так как вы определили @BindingAdapter({"bind:someImage"}), вам необходимо использовать someImage при вызове его из XML

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imagePath" 
    app:someImage="@{var.someImage}"/> 
0

Вы можете сделать это, не делая ничего программным способом, если ваша модель данных содержит идентификатор ресурса изображения.

Пример:

<layout> 

<data> 
<import type="android.support.v4.content.ContextCompat" />    
<variable 
name="roomInfoItem" 
type="com.example......model.RoomInfoModel" /> </data> 

<RelativeLayout> 

<ImageView 
    android:id="@+id/iv_room_info_item" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
/> 

</RelativeLayout> 

</layout> 

Просто добавьте следующую строку в ImageView (я не был в состоянии форматирования кода, когда я добавить его там):

андроид: SRC = "@ {ContextCompat.getDrawable (контекст, roomInfoItem.resId)}»

где Resid содержит R.drawable.your_image_name

Смежные вопросы