ListView的基础学习
来源:互联网 发布:python两个数组相减 编辑:程序博客网 时间:2024/05/16 12:12
class MyAdapter extends BaseAdapter { @Override //有多少数据数目就返回多少数目,如果返回1就只显示一条数目的view public int getCount() { return datas.size(); } @Override //响应position对应的item public Object getItem(int position) { return datas.get(position);//return null; } @Override //返回position位置对应的id public long getItemId(int position) { return position; //return 0; } @Override //用来显示数据的view public View getView(final int position, View convertView, ViewGroup parent) { TextView tv=new TextView(MainActivity.this);//不能this,这是java基础,this在这里指的是适配器
tv.setText(position);
SYSO; // 误区:不是适配器中有多少数目(getcount())就打印多少次,是滑动到哪里才getview到哪里,打印到哪里,。//所以如果“快速”滑动count为超级多的listview,就很可能内存溢出,就算是java中的垃圾回收机制也架不住申请内存>>释放的东西啊...解决方法与convertView有关
return tv;
} }
看文档的技巧:listview需要adapter(然而这是有好多方法的接口!),所以我们可以找一下这个接口的子类。不用implements 接口,直接extends 接口的子“类”(不是子接口)
param:
convertView:old view to reuse。当拉动listview的时候,上面的已经看不到的view其实是进入了“缓冲区”,这个相当于历史缓存对象。
注意:应该检查它是否为空。
假如一个Listview在一个屏幕下有20个item能显示,那么当convertView是空的时候,那么它就会创建20个item,然后到21的时候,就不会创建了,就会reuse复用了刚开始创建的20个item中的第一个item的位置。其实就是“循环”利用。
xml小积累:
fastScollorEnable=“true” 可以快速滑动不报错(溢出),和上面那个有关。而且旁边有个条,滑动很快。
layout_ToRightOf="@id/"两个控件之间的关系。
singleLine="true" 设置textview为单行
ellipsize="end"() 设置tv多余的文字为...,且在后面加上...也能设置前面
listView中的奇怪现象:如果一个item为4的listview(在getview()中设置打印动作)的height是match,那么它在打印台打印四次,如果是wrap就打印十六次(不一定,但是肯定多)。
原因:match的话知道屏幕高和一个item的高,它可以计算一个屏幕能显示多少item,但是wrap就不能,于是系统就会反复校验。
普通的listview设置:在main布局中直接加上listview
高级的Listview设置:创建一个布局(一行的item),用inflater打气筒(可以通过打气筒把xml换成view)
@Override public View getView(final int position, View convertView, ViewGroup parent) { View view; if(convertView == null){ view = View.inflate(parent.getContext(), R.layout.item_number, null); //viewgroup:可设置为null }else { view = convertView; } TextView tv_number = (TextView) view.findViewById(R.id.tv_number); tv_number.setText(datas.get(position)); return view; }viewgroup:就像linearlayout布局啥的,能有自己的孩子。ArrayAdapter:很适合很简单的Listview直接 ArrayAdapter<String> arr=new ArrayAdapter<String>(this,xml布局(这只有一个textview都行了,连父布局都不需要),String[])SimpleAdapter:
0 0
- ListView的基础学习
- Android的基础学习:ListView的使用和Adapter
- Android基础之Listview的滚动事件的学习
- 【Android基础学习】Listview的倒序显示问题
- ListView的基础应用
- Listview的基础使用
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView和Adapter的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- ListView 和 Adapter 的基础
- 基础之ListView的使用
- ListView 和 Adapter 的基础
- GYM 100182 H.Robot Challenge(dp)
- 2014第五届蓝桥杯预赛试题本科c++啤酒和饮料
- Apache POI TXT转成EXCEL(XLSX)
- Django项目关闭debug模式后,静态文件无法加载的解决办法
- [编程题] 买苹果
- ListView的基础学习
- js 创建对象与原型链继承
- linux中fork()函数详解
- 前台页面utf-8,通过url传中文参数的解决方法
- 每天一个 Linux 命令(7):mv 命令
- JAVA设计模式之策略模式
- Oracle数据库11gR2的卸载
- solr集成spring开发
- 静态变量的应用