gpt4 book ai didi

android - 如何使用带有异步图像加载的 Robobinding?

转载 作者:搜寻专家 更新时间:2023-11-01 08:47:03 26 4
gpt4 key购买 nike

我如何将 Robobinding 的 AdapterView 与动态图像加载器(如 ion 或 picasso)一起使用?

我从 REST 服务获取位置列表,其中一个属性是我想在我的 View 中显示的图像的 url。

这就是我所拥有的:

@org.robobinding.annotation.PresentationModel
public class LocationAdapterPresentationModel implements HasPresentationModelChangeSupport {
private final PresentationModelChangeSupport changeSupport;
private final Activity activity;
List<Location> locations;

public LocationAdapterPresentationModel(Activity activity, List<Location> locs){
locations = locs;
this.changeSupport = new PresentationModelChangeSupport(this);
this.activity = activity;
}

@ItemPresentationModel(LocationPresentationModel.class)
public List<Location> getLocations(){
return new ArrayList<Location>(locations);
}

public void refreshLocations() {
changeSupport.firePropertyChange("locations");
}

public void setLocations(List<Location> locs){
this.locations = locs;
}

@Override
public PresentationModelChangeSupport getPresentationModelChangeSupport() {
return changeSupport;
}

@org.robobinding.annotation.PresentationModel
public class LocationPresentationModel implements ItemPresentationModel<Location> {

...
my getter / setter
...
}

但是动态加载器放在哪里。当它只是一个项目时会很容易,但是如何让它与位置列表中的每个条目一起使用?

最佳答案

ItemPresentationModel 带有一个 updateData 方法,我在其中放入了所有需要的东西。这解决了我的问题。

  @Override
public void updateData(Location location, ItemContext itemContext) {
ViewGroup itemView = (ViewGroup) itemContext.getItemView();
ImageView image1 = (ImageView) itemView.findViewById(R.id.image1);
ImageView image2 = (ImageView) itemView.findViewById(R.id.image2);

Ion.with(image1)
.placeholder(R.drawable.loading)
.error(R.drawable.emptypicture)
.animateLoad(R.anim.loading_circle)
.load(location.getPreviewImg1());
}

关于android - 如何使用带有异步图像加载的 Robobinding?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27256895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com