Adapter适配器和base-adapter-helper库的使用
生活随笔
收集整理的这篇文章主要介绍了
Adapter适配器和base-adapter-helper库的使用
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- Adapter适配器
- 概述
- 关于视图重用
- 关于ViewHolder
- 使用步骤
- base-adapter-helper库的使用
- 1.导入库
- 2.将库中的java文件复制到项目中
- 3.编译并解决问题
- 4.使用
Adapter适配器
概述
Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系:
关于视图重用
如果正常用listview的话一个数据对应一个控件,那么占用的内存就很大了,这时候就需要视图重用,不用的视图放入视图回收站convertView,如果视图回收站没有视图则创建视图,再更新数据时就不用创建新的视图了,直接用在视图回收站中创建好的视图就可以了。
关于ViewHolder
由于将数据赋值给视图时每次都要执行findViewById,这样也会浪费内存,所以创建一个ViewHolder类来保存你需要保存的控件,这样就不用执行多次find了。
使用步骤
创建主界面ListView和列表item视图
结果
base-adapter-helper库的使用
- 使用原始的adapter适配器,要解决视图重用,还有ViewHolder等问题,引用第三方库base-adapter-helper可以让库自己处理这些问题,可以很大程度上使代码更加简单,便捷。
- base-adapter-helper库的地址https://github.com/JoanZapata/base-adapter-helper.git
1.导入库
2.将库中的java文件复制到项目中
3.编译并解决问题
由于base-adapter-helper库还引用了其他的库,所以会报错,将报错的代码注释即可。
4.使用
import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.VideoView;import com.joanzapata.android.BaseAdapterHelper; import com.joanzapata.android.QuickAdapter;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {ListView listView;List<String> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//1.创建并初始化ListView对象listView = findViewById(R.id.lv_show);//2.创建数据集合list = new ArrayList<>();//向集合中添加数据for (int i = 0; i <1000 ; i++) {list.add("数据"+i);}//3.创建并设置适配器QuickAdapter adapter = new QuickAdapter<String>(this, R.layout.item, list) {@Overrideprotected void convert(BaseAdapterHelper helper, String item) { //取数据并将数据赋值给视图helper.setText(R.id.tv_list, item);}};listView.setAdapter(adapter);} }结果
总结
以上是生活随笔为你收集整理的Adapter适配器和base-adapter-helper库的使用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: (Java集合框架)集合框架概述和Col
- 下一篇: (仿头条APP项目)3.二级页面首页的V