当前位置: 移动技术网 > 移动技术>移动开发>Android > Android listview多视图嵌套多视图

Android listview多视图嵌套多视图

2019年07月24日  | 移动技术网移动技术  | 我要评论

首先给大家展示下效果图:

public class homeedumoreadapter extends baseadapter {
private final string tag = "homeedumoreadapter";
private static final int type_common = ;
private static final int type_bl = ;
private static final int type_none = ;
private static final int type_three = ;
private static final int type_question = ;
private int type_count = ;
private layoutinflater inflater;
private list<homeedus> list;
private context context;
private displayimageoptions options;
private imageloadinglistener animatefirstlistener = new animatefirstdisplaylistener();
public homeedumoreadapter(context context, list<homeedus> objects) {
this.context = context;
// groupuserdao = new groupuserdao(context);
inflater = layoutinflater.from(context);
list = objects;
options = new displayimageoptions.builder().cacheinmemory(true)
.imagescaletype(imagescaletype.in_sample_int)
.bitmapconfig(bitmap.config.rgb_).cacheondisk(true)
.showimageonloading(r.drawable.icon_default)// 设置图片在下载期间显示的图片
.showimageforemptyuri(r.drawable.icon_default)// 设置图片uri为空或是错误的时候显示的图片
.showimageonfail(r.drawable.icon_default)// 设置图片加载/解码过程中错误时候显示的图片
.considerexifparams(true).build();
}
@override
public int getcount() {
// todo auto-generated method stub
return list.size();
}
@override
public int getviewtypecount() {
// todo auto-generated method stub
return type_count;
}
@override
public homeedus getitem(int position) {
// todo auto-generated method stub
return list.get(position);
}
@override
public long getitemid(int postion) {
// todo auto-generated method stub
return postion;
}
@override
public int getitemviewtype(int position) {
// todo auto-generated method stub
homeedus edus = getitem(position);
string type = edus.gettype();// 菜单类型
int result = type_common;
switch (type) {
case "hx":
result = type_common;
break;
case "wd":
if (edus.getpic() == null || edus.getpic().equals("")) {
result = type_question;
}else {
result = type_common;
}
break;
case "jt":
result = type_common;
break;
case "bl":
result = type_bl;
break;
default:
string jx = edus.gettype();// 精选内容类型
switch (jx) {
default:
integer imgnum = integer.parseint(edus.getimgnum());
if (imgnum != null && imgnum > && imgnum < ) {
result = type_common;
} else if (imgnum != null && imgnum >= ) {
result = type_three;
} else {
result = type_none;
}
break;
}
break;
}
return result;
}
@override
public view getview(int position, view convertview, viewgroup parent) {
// todo auto-generated method stub
final homeedus model = getitem(position);
int type = getitemviewtype(position);
final viewholder holder;
if (convertview == null) {
holder = new viewholder();
windowmanager manager = (windowmanager) context
.getsystemservice(context.window_service);
int width = manager.getdefaultdisplay().getwidth();
int height = manager.getdefaultdisplay().getwidth() / ;
switch (type) {
case type_common:
convertview = inflater.inflate(r.layout.item_home_edus, null);
holder.tv_content = (qstextview) convertview
.findviewbyid(r.id.tv_content);
holder.tv_content.settextcolor(color.gray);
holder.tv_title = (qstextview) convertview
.findviewbyid(r.id.tv_title);
holder.tv_name = (textview) convertview
.findviewbyid(r.id.tv_name);
// holder.img_head = (circleimageview) convertview
// .findviewbyid(r.id.img_head);
holder.img_content = (imageview) convertview
.findviewbyid(r.id.img_content);
holder.tv_read = (textview) convertview
.findviewbyid(r.id.tv_read);
holder.tv_comment = (textview) convertview
.findviewbyid(r.id.tv_comment);
holder.tv_thumbupnum = (textview) convertview
.findviewbyid(r.id.tv_thumbupnum);
break;
case type_question:
convertview = inflater.inflate(r.layout.item_home_question, null);
holder.tv_content = (qstextview) convertview
.findviewbyid(r.id.tv_content);
holder.tv_content.settextcolor(color.gray);
holder.tv_title = (qstextview) convertview
.findviewbyid(r.id.tv_title);
holder.tv_name = (textview) convertview
.findviewbyid(r.id.tv_name);
holder.tv_read = (textview) convertview
.findviewbyid(r.id.tv_read);
holder.tv_comment = (textview) convertview
.findviewbyid(r.id.tv_comment);
holder.tv_thumbupnum = (textview) convertview
.findviewbyid(r.id.tv_thumbupnum);
break;
case type_bl:
case type_none:
convertview = inflater.inflate(r.layout.item_home_case, null);
holder.tv_content = (qstextview) convertview
.findviewbyid(r.id.tv_content);
holder.tv_content.settextcolor(color.gray);
holder.tv_title = (qstextview) convertview
.findviewbyid(r.id.tv_title);
holder.tv_name = (textview) convertview
.findviewbyid(r.id.tv_name);
holder.img_content = (imageview) convertview
.findviewbyid(r.id.img_content);
layoutparams para = holder.img_content.getlayoutparams();
para.height = height;
para.width = width;
holder.img_content.setlayoutparams(para);
holder.tv_read = (textview) convertview
.findviewbyid(r.id.tv_read);
holder.tv_comment = (textview) convertview
.findviewbyid(r.id.tv_comment);
holder.tv_thumbupnum = (textview) convertview
.findviewbyid(r.id.tv_thumbupnum);
break;
case type_three:
convertview = inflater.inflate(r.layout.item_home_three, null);
holder.tv_content = (qstextview) convertview
.findviewbyid(r.id.tv_content);
holder.tv_content.settextcolor(color.gray);
holder.tv_title = (qstextview) convertview
.findviewbyid(r.id.tv_title);
holder.tv_name = (textview) convertview
.findviewbyid(r.id.tv_name);
holder.img_content = (imageview) convertview
.findviewbyid(r.id.img_content);
holder.img_content = (imageview) convertview
.findviewbyid(r.id.img_content);
holder.img_content = (imageview) convertview
.findviewbyid(r.id.img_content);
int w = width / ;
layoutparams p = holder.img_content.getlayoutparams();
p.height = (int)(w*.f);
p.width = w;
holder.img_content.setlayoutparams(p);
p = holder.img_content.getlayoutparams();
p.height = (int)(w*.f);
p.width = w;
holder.img_content.setlayoutparams(p);
p = holder.img_content.getlayoutparams();
p.height = (int)(w*.f);
p.width = w;
holder.img_content.setlayoutparams(p);
holder.tv_read = (textview) convertview
.findviewbyid(r.id.tv_read);
holder.tv_comment = (textview) convertview
.findviewbyid(r.id.tv_comment);
holder.tv_thumbupnum = (textview) convertview
.findviewbyid(r.id.tv_thumbupnum);
break;
}
convertview.settag(holder);
} else {
holder = (viewholder) convertview.gettag();
}
switch (type) {
case type_common:
case type_bl:
setcommon(holder, model);
break;
case type_question:
setquestion(holder,model);
break;
case type_none:
setcase(holder, model);
break;
case type_three:
setthree(holder, model);
break;
}
return convertview;
}
private void setcommon(viewholder holder, homeedus entity) {
string content = entity.getdesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setmtext(content);
string title = entity.gettitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setmtext(title);
// int height = holder.tv_title.getheight();
holder.tv_thumbupnum.settext(entity.getthumbupnum());
holder.tv_read.settext(entity.getreadnum());
holder.tv_comment.settext(entity.getcommentnum());
holder.tv_name.settext(entity.getsourcename());
// if (entity.gethead_img() != null && !entity.gethead_img().equals(""))
// {
// imageloader.getinstance().displayimage(entity.gethead_img().trim(),
// holder.img_head, options, animatefirstlistener);
// } else {
// holder.img_head.setimageresource(r.drawable.pic_head_none_login);
// }
if (entity.getpic() != null
&& !entity.getpic().equals("")) {
holder.img_content.setbackground(null);
imageloader.getinstance().displayimage(
entity.getpic().trim(), holder.img_content,
options, animatefirstlistener);
}
}
private void setcase(viewholder holder, homeedus entity) {
string content = entity.getdesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setmtext(content);
string title = entity.gettitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setmtext(title);
// int height = holder.tv_title.getheight();
holder.tv_thumbupnum.settext(entity.getthumbupnum());
holder.tv_read.settext(entity.getreadnum());
holder.tv_comment.settext(entity.getcommentnum());
holder.tv_name.settext(entity.getsourcename());
if (entity.getpic() != null
&& !entity.getpic().equals("")) {
holder.img_content.setbackground(null);
imageloader.getinstance().displayimage(
entity.getpic().trim(), holder.img_content,
options, animatefirstlistener);
}
}
private void setthree(viewholder holder, homeedus entity) {
string content = entity.getdesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setmtext(content);
string title = entity.gettitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setmtext(title);
// int height = holder.tv_title.getheight();
holder.tv_thumbupnum.settext(entity.getthumbupnum());
holder.tv_read.settext(entity.getreadnum());
holder.tv_comment.settext(entity.getcommentnum());
holder.tv_name.settext(entity.getsourcename());
holder.img_content.setimageresource(r.drawable.icon_default);
holder.img_content.setimageresource(r.drawable.icon_default);
holder.img_content.setimageresource(r.drawable.icon_default);
if (entity.getpic() != null
&& !entity.getpic().equals("")) {
holder.img_content.setbackground(null);
imageloader.getinstance().displayimage(
entity.getpic().trim(), holder.img_content,
options, animatefirstlistener);
}
if (entity.getpic() != null
&& !entity.getpic().equals("")) {
holder.img_content.setbackground(null);
imageloader.getinstance().displayimage(
entity.getpic().trim(), holder.img_content,
options, animatefirstlistener);
}
if (entity.getpic() != null
&& !entity.getpic().equals("")) {
holder.img_content.setbackground(null);
imageloader.getinstance().displayimage(
entity.getpic().trim(), holder.img_content,
options, animatefirstlistener);
}
}
private void setquestion(viewholder holder, homeedus entity) {
string content = entity.getdesc();
int clength = content.length();
if (clength > ) {
content = content.substring(, ) + "...";
}
holder.tv_content.setmtext(content);
string title = entity.gettitle();
int tlength = title.length();
if (tlength > ) {
title = title.substring(, ) + "...";
}
holder.tv_title.setmtext(title);
// int height = holder.tv_title.getheight();
holder.tv_thumbupnum.settext(entity.getthumbupnum());
holder.tv_read.settext(entity.getreadnum());
holder.tv_comment.settext(entity.getcommentnum());
holder.tv_name.settext(entity.getsourcename());
}
public void setlist(list<homeedus> list) {
this.list.clear();
this.list.addall(list);
notifydatasetchanged();
}
static class viewholder {
public qstextview tv_title;
public qstextview tv_content;
public imageview img_content;
public textview tv_name;
public textview tv_read;
public textview tv_comment;
public textview tv_thumbupnum;
public imageview img_content;
public imageview img_content;
public imageview img_content;
}
private static class animatefirstdisplaylistener extends
simpleimageloadinglistener {
static final list<string> displayedimages = collections
.synchronizedlist(new linkedlist<string>());
@override
public void onloadingcomplete(string imageuri, view view,
bitmap loadedimage) {
if (loadedimage != null) {
imageview imageview = (imageview) view;
boolean firstdisplay = !displayedimages.contains(imageuri);
if (firstdisplay) {
fadeinbitmapdisplayer.animate(imageview, );
displayedimages.add(imageuri);
}
}
}
}
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网