答案 0 :(得分:0)
您可以在模型中使用int downloadStatus;
变量来保存有关下载的信息。
1可用 2下载 3下载 等......
当按钮为Available
时单击它以下载更改downloadStatus
以使用notifyDataSetChanged()
刷新视图。
下载完成后,将downloadStatus
更改为3,使用notifyDataSetChanged()
设置图像时使用完整条件,否则可能会在按钮中显示错误的图像。
if(downloadStatus==1){
//available image
}else if(downloadStatus==2){
//downloading image
}else if(downloadStatus==3){
//downloaded image
}
更换价值代码:假设模型是这样的
class Model{
String desc;
int downloadStatus;
public Model(String desc, int downloadStatus) {
this.desc = desc;
this.downloadStatus = downloadStatus;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getDownloadStatus() {
return downloadStatus;
}
public void setDownloadStatus(int downloadStatus) {
this.downloadStatus = downloadStatus;
}
}
替换:
ArrayList<Model> list = new ArrayList<Model>();
list.add(new Model("Firt Audio", 1));
list.add(new Model("Second Audio", 1));
list.add(new Model("Third Audio", 1));
list.add(new Model("Fourth Audio", 1));
//Replace Value
Model model = list.get(position);
list.add(position, new Model(model.desc, 2));
答案 1 :(得分:0)
我认为您正在使用某种后台服务或AsynchTask来下载文件或其他任何内容。
然后在完成该任务时,您显然有一个触发器,表明任务已完成。所以你可以在那时改变图像。