您的位置:首页 > 移动开发 > Android开发

Android之ListView优化

2016-01-29 23:21 459 查看
import java.util.List;

import com.example.contentprovider.R;
import com.example.entity.ImagePath;
import com.example.util.Util;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyBaseAdapter extends BaseAdapter {
private List<ImagePath> imagePaths;
Context context;

public MyBaseAdapter(List<ImagePath> list, Context context) {
super();
this.imagePaths = list;
this.context = context;
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return imagePaths.size();
}

@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return imagePaths.get(arg0);
}

@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
MyView myView = null;
View view ;
//arg1 如果为null则执行该代码;该if判断的作用是优化List:如果arg1为null的时候获取布局该布局会缓存在arg1中,创建myView对象
//将myView对象存放在view中!当arg1不为空时取出view中的myView对象和缓存中的view
if(arg1 == null){
//实例化MyView对象
myView = new MyView();
//获取LayoutInflater对象
LayoutInflater inflater = LayoutInflater.from(context);
//通过inflater获取ListView中的item的布局
view = inflater.inflate(R.layout.mybaseadapter,null);
//获取item布局的组件
myView.imageView = (ImageView) view.findViewById(R.id.id_image);
myView.textName = (TextView) view.findViewById(R.id.id_textName);
myView.textNum = (TextView) view.findViewById(R.id.id_textNum);
//将myView对象存进view中
view.setTag(myView);
}else{
//如果arg1不为null,将arg1赋给view
view = arg1;
//将存放在view中的MyView对象取出来
myView = (MyView) view.getTag();
}
myView.textName.setText(imagePaths.get(arg0).getPakagePath());
myView.textNum.setText("共"+imagePaths.get(arg0).getListPth().size()+"张");
myView.imageView.setImageBitmap(Util.getBitmapByPath(imagePaths.get(arg0).getListPth().get(0),86,86));
return view;
}

}
class MyView{
TextView textName;
TextView textNum;
ImageView imageView;
}


才接触android,在慢慢的自学!后续会更新
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: