【发布时间】:2015-03-25 10:55:53
【问题描述】:
我的Activity 中有Fragment。在这个片段中,我展示了GridView,它填充了自定义适配器。我正在使用 Picasso 库从网络下载图像。关键问题是我不知道如何每 10 秒更新一次 GridView 中的图像(服务器上的图片每 10 秒更改一次,购买链接保持静态)。
我已经尝试在片段中使用Handler 和 gridview.invalidate() 但这对我没有帮助:(
任何关于如何正确更新列表视图内容(无需滚动或开始滚动)的帮助将不胜感激。
PictureAdapter.java 公共类 PicturesAdapter 扩展 BaseAdapter {
private Context mContext;
private List<Camera> cameras;
public PicturesAdapter(Context mContext, List<Camera> cameras) {
this.mContext = mContext;
this.cameras = cameras;
}
@Override
public int getCount() {
return cameras.size();
}
@Override
public Object getItem(int position) {
return cameras.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
PictureHolder pictureHolder;
if (convertView == null){
LayoutInflater inflater = ((Activity)mContext).getLayoutInflater();
convertView = inflater.inflate(R.layout.picture_item_layout,parent,false);
pictureHolder = new PictureHolder();
pictureHolder.pictureItemImageView = (ImageView)convertView.findViewById(R.id.picture_item_image);
pictureHolder.pictureItemTextView = (TextView)convertView.findViewById(R.id.picture_item_text);
convertView.setTag(pictureHolder);
} else {
pictureHolder = (PictureHolder)convertView.getTag();
}
Picasso.with(mContext)
.load(cameras.get(position).getCameraSysInfoIMGUrl())
.networkPolicy(NetworkPolicy.NO_CACHE)
.memoryPolicy(MemoryPolicy.NO_CACHE)
.into(pictureHolder.pictureItemImageView);
//Log.i("drew",cameras.get(position).getCameraSysInfoIMGUrl());
pictureHolder.pictureItemTextView.setText(cameras.get(position).getCameraName());
return convertView;
}
static class PictureHolder{
ImageView pictureItemImageView;
TextView pictureItemTextView;
}
public String getCameraId(int position) {
return cameras.get(position).getCameraId();
}
}
【问题讨论】:
-
Android 提供了允许您自动同步的 SyncAdapter 模式。这是一个很好的教程:c99.org/2010/01/23/writing-an-android-sync-provider-part-1
-
你需要每 10 秒清除一次
Picasso的缓存。 -
@dextor 你能解释一下怎么做吗,因为我在square.github.io/picasso找不到这个
标签: android listview gridview picasso custom-adapter