課程
/移動(dòng)開發(fā)
/Android
/Android必學(xué)-BaseAdapter的使用與優(yōu)化
源碼資源鏈接
2017-08-10
源自:Android必學(xué)-BaseAdapter的使用與優(yōu)化 5-2
正在回答
需要源碼嗎,你自己可以敲出來的
第一種(逗比式):
@Override
public View getView(int position, View view, ViewGroup viewGroup) { ? ?View v = mInflater.inflate(R.layout.item_check_record,null); ? ?ImageView weekImage = v.findViewById(R.id.check_record_week_image); ? ?ImageView timeImg = v.findViewById(R.id.check_img_time); ? ?TextView weekTv = v.findViewById(R.id.go_to_work_time); ? ?TextView goToWork = v.findViewById(R.id.go_to_work_time); ? ?TextView getOffWork = v.findViewById(R.id.get_off_work_time); ? ?ItemCheckRecordBean bean = mList.get(position); ? ?weekImage.setImageResource(bean.ItemImageId); ? ?timeImg.setImageResource(bean.ItemImageIdTime); ? ?weekTv.setText(bean.ItemWeekTv); ? ?goToWork.setText(bean.ItemGotoworkTv); ? ?getOffWork.setText(bean.ItemOffworkTv); ? ?return v; ? ?}
第二種(普通式):
public View getView(int position, View view, ViewGroup viewGroup) { ? ?if(view == null){ ? ? ? ?view = mInflater.inflate(R.layout.item_check_record,null); ? ?} ? ?ImageView weekImage = view.findViewById(R.id.check_record_week_image); ? ?ImageView timeImg = view.findViewById(R.id.check_img_time); ? ?TextView weekTv = view.findViewById(R.id.go_to_work_time); ? ?TextView goToWork = view.findViewById(R.id.go_to_work_time); ? ?TextView getOffWork = view.findViewById(R.id.get_off_work_time); ? ?ItemCheckRecordBean bean = mList.get(position); ? ?weekImage.setImageResource(bean.ItemImageId); ? ?timeImg.setImageResource(bean.ItemImageIdTime); ? ?weekTv.setText(bean.ItemWeekTv); ? ?goToWork.setText(bean.ItemGotoworkTv); ? ?getOffWork.setText(bean.ItemOffworkTv); ? ?return view;}
第三種(文藝式):
public View getView(int position, View view, ViewGroup viewGroup) { ? ?long start = System.nanoTime(); ? ?ViewHolder viewHolder; ? ?if(view == null){ ? ? ? ?viewHolder = new ViewHolder(); ? ? ? ?view = mInflater.inflate(R.layout.item_check_record,null); ? ? ? ?viewHolder.weekImage = view.findViewById(R.id.check_record_week_image); ? ? ? ?viewHolder. timeImg = view.findViewById(R.id.check_img_time); ? ? ? ?viewHolder. weekTv = view.findViewById(R.id.go_to_work_time); ? ? ? ?viewHolder. goToWork = view.findViewById(R.id.go_to_work_time); ? ? ? ?viewHolder. getOffWork = view.findViewById(R.id.get_off_work_time); ? ? ? ?view.setTag(viewHolder); ? ?}else { ? ? ? ?viewHolder = (ViewHolder) view.getTag(); ? ?} ? ?ItemCheckRecordBean bean = mList.get(position); ? ?viewHolder. weekImage.setImageResource(bean.ItemImageId); ? ?viewHolder. timeImg.setImageResource(bean.ItemImageIdTime); ? ?viewHolder. weekTv.setText(bean.ItemWeekTv); ? ?viewHolder. goToWork.setText(bean.ItemGotoworkTv); ? ?viewHolder. getOffWork.setText(bean.ItemOffworkTv); ? ?long end = System.nanoTime(); ? ?long dValue = end - start; ? ?mSumTime += dValue; ? ?Log.d("xys" , String.valueOf(mSumTime)); ? ?return view;}class ViewHolder { ? ?public ImageView weekImage; ? ?public ImageView timeImg; ? ?public TextView weekTv; ? ?public TextView goToWork; ? ?public TextView getOffWork;}
//文藝式優(yōu)化,緩存機(jī)制更好
//activity 中調(diào)用
public void ItemList(){
List<ItemCheckRecordBean> itemCheckRecordBeanList ?= new ArrayList< >(); ? ?for (int i = 0; i < 5; i++) { ? ? ? ?itemCheckRecordBeanList.add(new ItemCheckRecordBean( ? ? ? ? ? ? ? ?R.drawable.button_radius, ? ? ? ? ? ? ? ?"星期"+i, ? ? ? ? ? ? ? ?R.mipmap.time, ? ? ? ? ? ? ? ?"9:00--"+i, ? ? ? ? ? ? ? ?"18:00--"+i ? ? ? ?)); ? ?} ? ?ListView listView = (ListView) findViewById(R.id.list_check_record); ? ?listView.setAdapter(new CheckRecordAdapter(this,itemCheckRecordBeanList)); ? ?}
//實(shí)體類中定義
public class ItemCheckRecordBean {
public int ItemImageId;public String ItemWeekTv;public int ItemImageIdTime;public String ItemGotoworkTv;public String ItemOffworkTv;public ItemCheckRecordBean(int itemImageId, String itemWeekTv, int itemImageIdTime, ? ? ? ? ? ? ? ? ? ? ? ? ? String itemGotoworkTv, String itemOffworkTv) { ? ?ItemImageId = itemImageId; ? ?ItemWeekTv = itemWeekTv; ? ?ItemImageIdTime = itemImageIdTime; ? ?ItemGotoworkTv = itemGotoworkTv; ? ?ItemOffworkTv = itemOffworkTv;}
}
舉報(bào)
了解數(shù)據(jù)適配器的使用方法,寫出高效、文藝的BaseAdapter
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-08-11
需要源碼嗎,你自己可以敲出來的
第一種(逗比式):
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
? ?View v = mInflater.inflate(R.layout.item_check_record,null);
? ?ImageView weekImage = v.findViewById(R.id.check_record_week_image);
? ?ImageView timeImg = v.findViewById(R.id.check_img_time);
? ?TextView weekTv = v.findViewById(R.id.go_to_work_time);
? ?TextView goToWork = v.findViewById(R.id.go_to_work_time);
? ?TextView getOffWork = v.findViewById(R.id.get_off_work_time);
? ?ItemCheckRecordBean bean = mList.get(position);
? ?weekImage.setImageResource(bean.ItemImageId);
? ?timeImg.setImageResource(bean.ItemImageIdTime);
? ?weekTv.setText(bean.ItemWeekTv);
? ?goToWork.setText(bean.ItemGotoworkTv);
? ?getOffWork.setText(bean.ItemOffworkTv);
? ?return v;
? ?}
第二種(普通式):
@Override
public View getView(int position, View view, ViewGroup viewGroup) { ? ?if(view == null){ ? ? ? ?view = mInflater.inflate(R.layout.item_check_record,null);
? ?}
? ?ImageView weekImage = view.findViewById(R.id.check_record_week_image);
? ?ImageView timeImg = view.findViewById(R.id.check_img_time);
? ?TextView weekTv = view.findViewById(R.id.go_to_work_time);
? ?TextView goToWork = view.findViewById(R.id.go_to_work_time);
? ?TextView getOffWork = view.findViewById(R.id.get_off_work_time);
? ?ItemCheckRecordBean bean = mList.get(position);
? ?weekImage.setImageResource(bean.ItemImageId);
? ?timeImg.setImageResource(bean.ItemImageIdTime);
? ?weekTv.setText(bean.ItemWeekTv);
? ?goToWork.setText(bean.ItemGotoworkTv);
? ?getOffWork.setText(bean.ItemOffworkTv); ? ?return view;
}
第三種(文藝式):
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
? ?long start = System.nanoTime();
? ?ViewHolder viewHolder;
? ?if(view == null){
? ? ? ?viewHolder = new ViewHolder();
? ? ? ?view = mInflater.inflate(R.layout.item_check_record,null);
? ? ? ?viewHolder.weekImage = view.findViewById(R.id.check_record_week_image);
? ? ? ?viewHolder. timeImg = view.findViewById(R.id.check_img_time);
? ? ? ?viewHolder. weekTv = view.findViewById(R.id.go_to_work_time);
? ? ? ?viewHolder. goToWork = view.findViewById(R.id.go_to_work_time);
? ? ? ?viewHolder. getOffWork = view.findViewById(R.id.get_off_work_time);
? ? ? ?view.setTag(viewHolder);
? ?}else {
? ? ? ?viewHolder = (ViewHolder) view.getTag();
? ?}
? ?ItemCheckRecordBean bean = mList.get(position);
? ?viewHolder. weekImage.setImageResource(bean.ItemImageId);
? ?viewHolder. timeImg.setImageResource(bean.ItemImageIdTime);
? ?viewHolder. weekTv.setText(bean.ItemWeekTv);
? ?viewHolder. goToWork.setText(bean.ItemGotoworkTv);
? ?viewHolder. getOffWork.setText(bean.ItemOffworkTv);
? ?long end = System.nanoTime();
? ?long dValue = end - start;
? ?mSumTime += dValue;
? ?Log.d("xys" , String.valueOf(mSumTime));
? ?return view;}
class ViewHolder {
? ?public ImageView weekImage;
? ?public ImageView timeImg;
? ?public TextView weekTv;
? ?public TextView goToWork;
? ?public TextView getOffWork;}
//文藝式優(yōu)化,緩存機(jī)制更好
//activity 中調(diào)用
public void ItemList(){
List<ItemCheckRecordBean> itemCheckRecordBeanList ?= new ArrayList< >();
? ?for (int i = 0; i < 5; i++) {
? ? ? ?itemCheckRecordBeanList.add(new ItemCheckRecordBean( ? ? ? ? ? ? ? ?R.drawable.button_radius, ? ? ? ? ? ? ? ?"星期"+i,
? ? ? ? ? ? ? ?R.mipmap.time, ? ? ? ? ? ? ? ?"9:00--"+i, ? ? ? ? ? ? ? ?"18:00--"+i
? ? ? ?));
? ?}
? ?ListView listView = (ListView) findViewById(R.id.list_check_record);
? ?listView.setAdapter(new CheckRecordAdapter(this,itemCheckRecordBeanList));
? ?}
//實(shí)體類中定義
public class ItemCheckRecordBean {
public int ItemImageId;public String ItemWeekTv;public int ItemImageIdTime;public String ItemGotoworkTv;public String ItemOffworkTv;public ItemCheckRecordBean(int itemImageId, String itemWeekTv, int itemImageIdTime, ? ? ? ? ? ? ? ? ? ? ? ? ? String itemGotoworkTv, String itemOffworkTv) { ? ?ItemImageId = itemImageId; ? ?ItemWeekTv = itemWeekTv; ? ?ItemImageIdTime = itemImageIdTime; ? ?ItemGotoworkTv = itemGotoworkTv; ? ?ItemOffworkTv = itemOffworkTv;}
}