ListView里面可能存在列表项,以前我是用叠加ListView实现的,现在我发现可以用枚举Type实现。
效果图:
主要代码:
public enum Type {
head(1),footer(2),body1(11),body2(12);
private int val;
private Type(int value){
val=value;
}
public int getValue(){
return this.val;
}
}
import java.util.List;
import com.example.llistview.R;
import android.content.Context;
import android.view.View;
public class MyAdapter extends ListViewAdapter<ItemBean>{
private ItemBean bean;
private View converView;
public MyAdapter(Context context, List<ItemBean> list) {
super(context, list);
// TODO Auto-generated constructor stub
}
@Override
public int setContentView(ItemBean t) {
// TODO Auto-generated method stub
this.bean=t;
int layout =0;
if(bean.getType()==Type.head.getValue()){
layout=R.layout.item_head;
}else if(bean.getType()==Type.body1.getValue()){
layout=R.layout.item_body1;
}else if(bean.getType()==Type.body2.getValue()){
layout=R.layout.item_body2;
}else if(bean.getType()==Type.footer.getValue()){
layout=R.layout.item_footer;
}
return layout;
}
@Override
public void initial(View view) {
// TODO Auto-generated method stub
converView=view;
if(bean.getType()==Type.head.getValue()){
init1();
}else if(bean.getType()==Type.body1.getValue()){
init11();
}else if(bean.getType()==Type.body2.getValue()){
init12();
}else if(bean.getType()==Type.footer.getValue()){
init2();
}
}
private void init2() {
// TODO Auto-generated method stub
}
private void init12() {
// TODO Auto-generated method stub
}
private void init11() {
// TODO Auto-generated method stub
}
private void init1() {
// TODO Auto-generated method stub
ViewHolder.setTextView(converView, R.id.shopName,bean.getShopName());
ViewHolder.setTextView(converView, R.id.shopMonney,bean.getShopMonney());
}
}
demo下载地址: http://download.csdn.net/detail/anddroid_lanyan/8637707