android - Why my gridview is so unsmooth? -
i use asynctask in mainactivity read data db, , use static sparsearray save data, in getview immediate use sparsearray. still not smooth. asynctask
@override protected void doinbackground(integer... position) { (int = 0; < position[0]; i++) { int dayofweek = % 8 - 1; int onclass = / 8 + 1; item item = new item(); if (i % 8 != 0 && timeutil.judgetime(context, dayofweek, onclass)) { item.setcolor(1); } if (i % 8 != 0 && timeutil.hasschool(context, dayofweek, onclass)) { curriculum curriculum = curriculum.getcurriculum(context, dayofweek, onclass); courseid = curriculum.getcourseid(); buildid = curriculum.getbuildingid(); roomnum = curriculum.getroomnum(); string nickname = getcourseinfo(context, courseid); string buildname = getbuildinfo(context, buildid); item.setnickname(nickname); item.setplace(buildname); item.setroomnum(roomnum); item.sethascourse(1); } itemcache.append(i, item); } return null; } and getview
@override public view getview(int position, view convertview, viewgroup parent) { convertview = layoutinflater.from(context).inflate(r.layout.gridview_item, null); coursetext = (textview) convertview.findviewbyid(r.id.grid_item_nick); placetext = (textview) convertview.findviewbyid(r.id.grid_item_palce); roomtext = (textview) convertview.findviewbyid(r.id.grid_item_room); if (position % 8 == 0) { convertview.setbackgroundcolor(getresources().getcolor(r.color.gray)); coursetext.settext("第" + onclass + "节"); return convertview; } itemloadasynctask.item item = itemloadasynctask.itemcache.get(position); if (item != null && item.getcolor() == 1) { convertview.setbackgroundcolor(color.white); } if (item.gethascourse() == 1) { setinfoview(item); } return convertview; }
Comments
Post a Comment