Listview的运行效率

1.在getView()方法中有个convertView参数,这个参数可以将之前加载好的布局进行缓存,以便以后重复使用

if (convertView==null){
//LayoutInflater 加载我们传入的子项false 表示只让父类layout属性生效
view= LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
}else {
view =convertView;
}

如果convertVivw为空则用LayoutInflater来加载我们的子项布局,如果不则用convertView来加载。
---------------------------------------------------------------------------------------------------------------------------------------------
如果添加点击事件的时候
首先找到ListView控件,通过控件添加监听事件,并且通过position判断点击的那个子项
 initFruits();//初始化水果数据
FruitAdapter adapter= new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitList);
ListView listView = (ListView) findViewById(R.id.lv);
//将搭建好的对象传入
listView.setAdapter(adapter);

//为ListView 设置监听事件
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//通过position参数判断点击那个子项
Fruit fruit= fruitList.get(position);
Toast.makeText(getApplicationContext(),fruit.getName(),Toast.LENGTH_SHORT).show();
}
});
 
原文地址:https://www.cnblogs.com/lyl123/p/7149279.html