Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带。在常见的View(ListView,GridView)等地方都需要用到Adapter。如下图直观的表达了Data、Adapter、View三者的关系: 如果正常用listview的话一个数据对应一个控件,那么占用的内存就很大了,这时候就需要视图重用,不用的视图放入视图回收站convertView,如果视图回收站没有视图则创建视图,再更新数据时就不用创建新的视图了,直接用在视图回收站中创建好的视图就可以了。 由于将数据赋值给视图时每次都要执行findViewById,这样也会浪费内存,所以创建一个ViewHolder类来保存你需要保存的控件,这样就不用执行多次find了。 创建主界面ListView和列表item视图 结果 由于base-adapter-helper库还引用了其他的库,所以会报错,将报错的代码注释即可。 结果文章目录
Adapter适配器
概述
关于视图重用
关于ViewHolder
使用步骤
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; import java.util.List; public class MainActivity1 extends AppCompatActivity { //定义一个类来存放你需要保存的控件 class ViewHoider{ TextView textView; } class Myadapter extends BaseAdapter{ @Override public int getCount() { //返回list的大小 return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { //取数据 String data = list.get(position); //创建ViewHolder对象 ViewHoider hoider = null; //当视图回收站中没有视图时 if (convertView == null){ //创建视图 convertView=View.inflate(MainActivity1.this,R.layout.item,null); TextView textView = convertView.findViewById(R.id.tv_list); hoider = new ViewHoider(); hoider.textView = textView; //将viewHolder与视图绑定 convertView.setTag(hoider); }else { hoider= (ViewHoider) convertView.getTag(); } //将数据赋值给视图对象 hoider.textView.setText(data); return convertView; } } ListView listView; List<String> list; @Override protected 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.创建并设置适配器 Myadapter myadapter = new Myadapter(); listView.setAdapter(myadapter); } }
base-adapter-helper库的使用
1.导入库
2.将库中的java文件复制到项目中
3.编译并解决问题
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; @Override protected 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) { @Override protected void convert(BaseAdapterHelper helper, String item) { //取数据并将数据赋值给视图 helper.setText(R.id.tv_list, item); } }; listView.setAdapter(adapter); } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算