定义一个activity

就是直接定义一个就好了
然后在定义一个xml文件来作为数据适配器的内容

一个image一个text就是来这样定义的
代码填写

public class listview extends AppCompatActivity {    String[] name={"京东","淘宝","拼多多","喜加一"};    int[] sum={R.mipmap.a,R.mipmap.b,R.mipmap.a,R.mipmap.b};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_listview);        ListView listView = findViewById(R.id.list);        Mybaseadap mybaseadap=new Mybaseadap();        listView.setAdapter(mybaseadap);    }    class Mybaseadap extends BaseAdapter    {        @Override        public int getCount() {            return name.length;        }        @Override        public Object getItem(int position) {            return name[position];        }        @Override        public long getItemId(int position) {            return position;        }        @Override        public View getView(int position, View convertView, ViewGroup parent) {          /*  View view = View.inflate(listview.this, R.layout.list_item, null);            ImageView imageView = view.findViewById(R.id.item);            TextView   textView = view.findViewById(R.id.item_text);            textView.setText(name[position]);            imageView.setBackgroundResource(sum[position]);*/          holder holder;          if(convertView==null)          {              convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.list_item,null);              holder=new holder();              holder.imageView=convertView.findViewById(R.id.item);              holder.textView=convertView.findViewById(R.id.item_text);              convertView.setTag(holder);          }          else          {              holder=(holder)convertView.getTag();          }           holder.imageView.setBackgroundResource(sum[position]);          holder.textView.setText(name[position]);            return convertView;        }    }    class holder {        ImageView imageView;        TextView   textView;    }}

整体来看其实代码并不是很复杂,为listview组件添加一个BaseAdapter数据适配器的实现类,然后数组的填写在方法中一写就完事。
但是后期的优化看起来并不是很简单,因为要用到convertView缓存区,不是很懂这是怎么实现优化的,好像new对象是变少了,顺便说一下,convert的工作原理是,在你划上去之后,最上面的对象,存到缓存区,再创建最下面的对象,应该是这样

更多相关文章

  1. Android(安卓)NDK之fseek, lseek
  2. Android(安卓)Frame Animation 帧动画不播放问题。
  3. Xamarin.Android(安卓)自定义VideoView 进度条
  4. Android(安卓)Studio 在默认build.gradle 中加入自定义源(新建项
  5. android不同activity共享数据的几种方法
  6. Android(安卓)Training Caching Bitmaps 翻译
  7. Android,自定义ViewGroup实现titleBar
  8. 安卓开发笔记(五)declare-styleable中format详解
  9. Android开发适配器系列:AutoCompleteTextView和MultiAutoComplete

随机推荐

  1. writing dumpstate to file android
  2. Android(安卓)ProgressBar example
  3. android版本与API对应关系
  4. Follow up to “Android(安卓)graphics t
  5. Xposed: 勾住(Hook) Android应用程序对象
  6. Android(安卓)五大布局
  7. android4.0系统点击后颜色-浅蓝色
  8. Android定制之常见问题解决
  9. ListView去除分割线的问题
  10. android如何改变默认横竖屏方向