第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

BaseAdapter中getView方法如何編寫正確?

?

老師的代碼?寫法如下:

public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????????
????ViewHolder?viewHolder?=?null;????????
????if?(convertView?==?null){????????????
????????viewHolder?=?new?ViewHolder();????????????
????????convertView?=?mInflater.inflate(R.layout.item_layout,null);????????????
????????viewHolder.ivIcon?=?(ImageView)?convertView.findViewById(R.id.iv_icon);
????
????/***************************(老師版本)這三行代碼放這里?Start********************************/???????
????????String?url?=?mList.get(position).newsIconUrl;????????
????????viewHolder.ivIcon.setTag(url);????????
????????mImageLoader.showImageByAsyncTask(viewHolder.ivIcon,?url);
????/*************************(老師版本)這三行代碼放這里?End***********************************/
????
????????viewHolder.tvTitle?=?(TextView)?convertView.findViewById(R.id.tv_title);????????????
????????viewHolder.tvContent?=?(TextView)?convertView.findViewById(R.id.tv_content);????????????
????????convertView.setTag(viewHolder);????????
????}?else?{????????????
????????viewHolder?=?(ViewHolder)?convertView.getTag();????????
????}????????
????viewHolder.ivIcon.setImageResource(R.mipmap.ic_launcher);
????viewHolder.tvTitle.setText(mList.get(position).newsTitle);????????
????viewHolder.tvContent.setText(mList.get(position).newsContent);????????
????return?convertView;????
}

按照老師的寫法程序在滾動時奔潰,我Debug找到的崩潰地點是: ImageLoader類中的loadImages函數中的:

// 通過URl找到imageView
ImageView imageView = (ImageView) mListView.findViewWithTag(url);?//此處崩潰!!!?提示findViewWithTag無法找到ImageView!

imageView.setImageBitmap(bitmap);

?修改成下面的方式(移動3行代碼):

public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{????????

????ViewHolder?viewHolder?=?null;????????

????if?(convertView?==?null){????????????

????????viewHolder?=?new?ViewHolder();????????????

????????convertView?=?mInflater.inflate(R.layout.item_layout,null);????????????

????????viewHolder.ivIcon?=?(ImageView)?convertView.findViewById(R.id.iv_icon);
????????viewHolder.tvTitle?=?(TextView)?convertView.findViewById(R.id.tv_title);????????????

????????viewHolder.tvContent?=?(TextView)?convertView.findViewById(R.id.tv_content);????????????

????????convertView.setTag(viewHolder);????????

????}?else?{????????????

????????viewHolder?=?(ViewHolder)?convertView.getTag();????????

????}????????

????viewHolder.ivIcon.setImageResource(R.mipmap.ic_launcher);
????????
?/***************************(修改版本)這三行代碼放這里?Start******************************/???????
????????String?url?=?mList.get(position).newsIconUrl;????????


????????viewHolder.ivIcon.setTag(url);????????


????????mImageLoader.showImageByAsyncTask(viewHolder.ivIcon,?url);

?/*************************(修改版本)這三行代碼放這里?End********************************/

????viewHolder.tvTitle.setText(mList.get(position).newsTitle);????????

????viewHolder.tvContent.setText(mList.get(position).newsContent);????????

????return?convertView;????

}

修改后沒有問題了.

  1. 不知道為什么呢?請求解答!

正在回答

舉報

0/150
提交
取消
Android必學-異步加載
  • 參與學習       50618    人
  • 解答問題       326    個

了解Android中的異步加載處理方法,這是面試問的最多的知識點

進入課程

BaseAdapter中getView方法如何編寫正確?

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號