更新UI--更新ListView條目中的圖片

遇到一個需求,一鍵開始上傳,這樣就要更新待上傳文件列表中的狀態圖片,比如從暫停圖片換爲開始圖片。適配器如下:

	class LvAdapter extends BaseAdapter{
		ViewHolder vh;

		@Override
		public int getCount() {
			return fileDataList.size();
		}

		@Override
		public Object getItem(int position) {
			return fileDataList.get(position);
		}

		@Override
		public long getItemId(int position) {
			return position;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			
			if(convertView == null){
				convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.lvuploaditem, null);
				vh = new ViewHolder();
				vh.tv1 = (TextView) convertView.findViewById(R.id.textView1);
				vh.tv2 = (TextView) convertView.findViewById(R.id.textView2);
				vh.tv3 = (TextView) convertView.findViewById(R.id.textView3);
				vh.ib = (ImageView) convertView.findViewById(R.id.ib);
				
				convertView.setTag(vh);
			} else{
				vh = (ViewHolder) convertView.getTag();
			}
			
			vh.tv1.setText(fileDataList.get(position).getProjectName() + "-->"+fileDataList.get(position).getActionFormName());
			vh.tv2.setText(fileDataList.get(position).getFileName());
			vh.tv3.setText(fileDataList.get(position).getTime());
			
			<span style="color:#ff0000;">vh.ib.setImageResource(resId_iv);</span>
			
			return convertView;
		}
		
		
		class ViewHolder{
			TextView tv1;
			TextView tv2;
			TextView tv3;
			ImageView ib;
		}
	}

要更新listview,adapter.notifyDataSetChanged();這句話是必須的,但要更新圖片,我還是有點茫然。

以前都是更新數據,比如fileDataList  中的數據發生改變,adapter.notifyDataSetChanged()直接listview就數據更新了。

.................................

後來,我一想,你妹的,fileDataList  並沒有特別之處,一個普通的成員變量,那就在弄個吧。

好吧,

int resId_iv;

然後按下一鍵上傳所有,

resId_iv = R.drawable.media_stop;//想換什麼圖換什麼圖
adapter.notifyDataSetChanged();//更新

完事!


當然,這是所有條目齊刷刷的更新圖片,想單獨更新,就在單獨條目點擊事件裏

lv.setOnItemClickListener(new OnItemClickListener() {

    @Override public void onItemClick(AdapterView < ?>arg0, View arg1, int arg2, long arg3) {
        ImageView iv = (ImageView) arg1.findViewById(R.id.ib);
        uploading = !uploading;
        if (uploading) {
            iv.setImageResource(R.drawable.media_stop);

            ToastUtils.showToast(getApplicationContext(), "開始上傳");

            if (MainFrameBasicActivity.uploadService == null) {
                ToastUtils.showToast(getApplicationContext(), "上傳任務失敗");
            } else {
                MainFrameBasicActivity.uploadService.postActionFileInService(getApplicationContext(), imgList, RequestURL, params);
            }

        } else {
            iv.setImageResource(R.drawable.media_play);

            ToastUtils.showToast(getApplicationContext(), "停止上傳");
        }
    }
});


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章