您的位置:首页 > 其它

将数据显示到屏幕上(用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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: