一个简单的listview多条目加载代码
2017-10-15 19:08
363 查看
public class MyAdapter extends BaseAdapter{
private List list;
private Context context;
}
///////////////////////////////////////////////////////////////////
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List datas=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.lv);
}
private List list;
private Context context;
//定义两种类型 int类型,注意: 定义的数字 不能大于等于 getViewTypeCount 返回的数字 private final int TYPE_MEN=0; private final int TYPE_WOMEN=1; public MyAdapter(List<Person> list, Context context) { this.list = list; this.context = context; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } //得到视图类型的总数 @Override public int getViewTypeCount() { return 2; } //根据position 当前条目 ,去获取要显示的视图类型,返回值 int @Override public int getItemViewType(int position) { //根据数据内容去判断得到显示的类型 if(list.get(position).getSex().equals("男")){ return TYPE_MEN; }else if(list.get(position).getSex().equals("女")){ return TYPE_WOMEN; }else{ return TYPE_WOMEN; } } @Override public View getView(int position, View convertView, ViewGroup parent) { //首先要根据position得到显示的类型 int type=getItemViewType(position); switch (type){ case TYPE_MEN: ViewHolderMan holderMan; if(convertView==null){ convertView=View.inflate(context,R.layout.fale_item,null); holderMan=new ViewHolderMan(); holderMan.tvName=(TextView) convertView.findViewById(R.id.tv_name); holderMan.tvSex=(TextView) convertView.findViewById(R.id.tv_sex); convertView.setTag(holderMan); }else{ holderMan=(ViewHolderMan) convertView.getTag(); } holderMan.tvName.setText(list.get(position).getName()); holderMan.tvSex.setText(list.get(position).getSex()); return convertView; case TYPE_WOMEN: ViewHolderWomen holderWomenMan; if(convertView==null){ convertView=View.inflate(context,R.layout.women_item,null); holderWomenMan=new ViewHolderWomen(); holderWomenMan.tvName=(TextView) convertView.findViewById(R.id.tv_name); holderWomenMan.tvSex=(TextView) convertView.findViewById(R.id.tv_sex); convertView.setTag(holderWomenMan); }else{ holderWomenMan=(ViewHolderWomen) convertView.getTag(); } holderWomenMan.tvName.setText(list.get(position).getName()); holderWomenMan.tvSex.setText(list.get(position).getSex()); return convertView; } return null; } class ViewHolderMan{ TextView tvName; TextView tvSex; } class ViewHolderWomen{ TextView tvName; TextView tvSex; }
}
///////////////////////////////////////////////////////////////////
public class MainActivity extends AppCompatActivity {
private ListView listView;
private List datas=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.lv);
initData(); listView.setAdapter(new MyAdapter(datas,this)); } private void initData() { for(int i=0;i<20;i++){ Person p=new Person(); p.setName("小明"+i); p.setSex(i%2==0?"男":"女"); datas.add(p); } }
}
相关文章推荐
- 一个简单的动态加载js和css的jquery代码
- 一个简单的动态加载js和css的jquery代码
- 转一个简单的vue.js的图片懒加载的插件代码!
- listview多条目加载简单应用
- 一个简单的分批加载ListView的Demo
- 安卓ListView一个简单代码的注释和探讨
- 实现一个简单实用的动态加载上千条目的UGUI模块
- 一个简单的抓包代码
- Python初学-一个简单的小代码
- 基础学习笔记之opencv(21):一个简单有趣的皮肤检测代码
- java实现一个简单的网络爬虫代码示例
- listView滑动加载数据代码
- 记录一个简单线程池的代码
- 生活中的“返回顶部”原来代码这么简单,一个锚点链接(超链接{a}里的一种)就搞定!
- Android代码混淆的一个常用的简单例子
- 一个简单的PHP验证码实现代码
- PHP分页初探 一个最简单的PHP分页代码的简单实现
- Android 关于在ScrollView中加上一个ListView,ListView内容显示不完全(总是显示第一项)的问题的两种简单的解决方案
- 一个简单的时间片轮转多道程序内核代码 的实现
- 典型又简单的一个首页焦点图片的代码