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,在慢慢的自学!后续会更新
相关文章推荐
- 【转】Android开发的那些坑和小技巧
- 【Android学习5】Clean 之后R文件丢失
- android项目重构之路:界面篇
- AndroidStudio自定义属性无法识别
- 【转】Android真正的静默安装
- Android Studio快捷键(MAC版)
- Android之Bitmap 高效加载
- res与res-auto的区别——AndroidStudio自定义属性xmlns无法识别有关问题
- android+NDK+Mac安装
- Android--viewpager
- Android 简单欢迎页面设计
- Android 带固定图片的EditText
- Android基础之Activity的生命周期
- Android--viewpager学习
- android 导入数据库
- AndroidStudio学习笔记
- Android Studio 生成APK出现的「前言不允许有内容」错误
- Android 中ViewPager+fragment报异常:IllegalStateException:Can't change tag of fragment的一种解决思路
- Android--viewpager学习
- xml读取.sax解析方式 使用于Android 和java中 ,代码是java的, 在Android中只需要 区别监听类中的参数(localName,qName),相反的,java中使用qname 为节点的名称;