将数据显示到屏幕上(用ListView)
2016-05-10 21:07
387 查看
将数据显示到屏幕上(用ListView来显示)
继承BaseAdapter类实现方法
1、有多少个要显示的内容就要创建多少个View对象浪费内存空间,当记录数目特别多时,可能导致用户奔溃
/* *
* 此方法返回的是ListView的列表中某一行记录的对象
* position 当前返回的View的索引位置
* convertView 缓存对象
* parent 就是ListView对象
*/
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
Log.i(TAG,"getView "+position);
TextViewtv=newTextView(MainActivity.this);
Personperson=personList.get(position);//获得当前列对象
tv.setTextSize(20);
tv.setText(person.toString());
return tv;
}
2、利用缓存对象来显示内容,节省内存空间效率高
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
Log.i(TAG,"getView "+position);
TextViewtv=null;
if(convertView!=null){//convertView!=null,说明已经缓存了对象
Log.i(TAG,"getView():复用缓存"+position);
tv=(TextView)convertView;
}else{//convertView=null说明刚打开界面还没有滚动
tv=new TextView(MainActivity2.this);
Log.i(TAG,"getView:新建"+position);
}
Personperson=personList.get(position);
tv.setTextSize(20);
tv.setText(person.toString());
return tv;
}
3、用布局填充器将一个xml布局文件变成一个View对象
a. LayoutInflater inflater =MainActivity.this.getLayoutInflater();
b.View view = inflater.inflate(…);//第一个参数:xml布局文件,第二个参数:父节点
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
Log.i(TAG,"getView "+position);
Viewview=null;
//1.如果没有缓存对象
if(convertView==null){
//获得布局填充器对象
LayoutInflaterinflater=MainActivity3.this.getLayoutInflater();
//通过获得布局填充器将xml布局文件转换为View对象
view=inflater.inflate(R.id.listview_item,null);
}else{
convertView=view;
}
//2.给view中的年龄和姓名赋值
TextViewtv_name=(TextView)view.findViewById(R.id.listview_item_name);
TextViewtv_age=(TextView)view.findViewById(R.id.listview_item_age);
Personperson=personList.get(position);
tv_name.setText(person.getName());
tv_age.setText(person.getAge());
return view;
}
继承BaseAdapter类实现方法
1、有多少个要显示的内容就要创建多少个View对象浪费内存空间,当记录数目特别多时,可能导致用户奔溃
/* *
* 此方法返回的是ListView的列表中某一行记录的对象
* position 当前返回的View的索引位置
* convertView 缓存对象
* parent 就是ListView对象
*/
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
Log.i(TAG,"getView "+position);
TextViewtv=newTextView(MainActivity.this);
Personperson=personList.get(position);//获得当前列对象
tv.setTextSize(20);
tv.setText(person.toString());
return tv;
}
2、利用缓存对象来显示内容,节省内存空间效率高
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
Log.i(TAG,"getView "+position);
TextViewtv=null;
if(convertView!=null){//convertView!=null,说明已经缓存了对象
Log.i(TAG,"getView():复用缓存"+position);
tv=(TextView)convertView;
}else{//convertView=null说明刚打开界面还没有滚动
tv=new TextView(MainActivity2.this);
Log.i(TAG,"getView:新建"+position);
}
Personperson=personList.get(position);
tv.setTextSize(20);
tv.setText(person.toString());
return tv;
}
3、用布局填充器将一个xml布局文件变成一个View对象
a. LayoutInflater inflater =MainActivity.this.getLayoutInflater();
b.View view = inflater.inflate(…);//第一个参数:xml布局文件,第二个参数:父节点
@Override
public View getView(int position, ViewconvertView, ViewGroup parent) {
Log.i(TAG,"getView "+position);
Viewview=null;
//1.如果没有缓存对象
if(convertView==null){
//获得布局填充器对象
LayoutInflaterinflater=MainActivity3.this.getLayoutInflater();
//通过获得布局填充器将xml布局文件转换为View对象
view=inflater.inflate(R.id.listview_item,null);
}else{
convertView=view;
}
//2.给view中的年龄和姓名赋值
TextViewtv_name=(TextView)view.findViewById(R.id.listview_item_name);
TextViewtv_age=(TextView)view.findViewById(R.id.listview_item_age);
Personperson=personList.get(position);
tv_name.setText(person.getName());
tv_age.setText(person.getAge());
return view;
}
相关文章推荐
- 剑指offer之面试题6重建二叉树
- 多线程02:《疯狂Java讲义》学习笔记——线程的创建和启动
- 设计模式总结之装饰者模式
- 新人刚刚注册
- 数据库实验一
- DUBBO配置规则详解
- 图像特效---旋转模糊滤镜
- jQuery -- 下载与引入到文件
- BZOJ 3011 Running Away From the Barn
- java内存管理总结
- java版实时获取access_token
- python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典
- Surrounded Regions
- HUSTOJ 1017:三个整数是否相邻
- GitHub入门学习
- addFieldError与addActionError的区别
- Android 面试题汇总
- C语言 打印1到最大的N位数(输入3,打印1,2,3~999)
- x -path
- 查找