Android(安卓)ListView的创建以及数据适配器的使用
16lz
2021-01-26
定义一个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的工作原理是,在你划上去之后,最上面的对象,存到缓存区,再创建最下面的对象,应该是这样
更多相关文章
- Android(安卓)NDK之fseek, lseek
- Android(安卓)Frame Animation 帧动画不播放问题。
- Xamarin.Android(安卓)自定义VideoView 进度条
- Android(安卓)Studio 在默认build.gradle 中加入自定义源(新建项
- android不同activity共享数据的几种方法
- Android(安卓)Training Caching Bitmaps 翻译
- Android,自定义ViewGroup实现titleBar
- 安卓开发笔记(五)declare-styleable中format详解
- Android开发适配器系列:AutoCompleteTextView和MultiAutoComplete