Android适配器(Adapter)是连接数据和UI界面的桥梁,用于将数据填充到ListView、GridView等视图中,在Android开发中,我们通常使用ArrayAdapter、SimpleAdapter、BaseAdapter等适配器类来实现数据展示。
1. ArrayAdapter
ArrayAdapter是Android提供的一个基础适配器,适用于简单的列表展示,它主要用于将数组数据与ListView进行绑定,下面是一个简单的ArrayAdapter使用示例:
// 初始化ArrayAdapter ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList); // 将adapter设置给ListView ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter);
2. SimpleAdapter
SimpleAdapter适用于复杂的列表展示,它可以将Map集合的数据与ListView进行绑定,下面是一个简单的SimpleAdapter使用示例:
// 初始化数据 List<Map<String, String>> dataList = new ArrayList<>(); for (int i = 0; i < 10; i++) { Map<String, String> map = new HashMap<>(); map.put("title", "标题" + i); map.put("description", "描述" + i); dataList.add(map); } // 初始化SimpleAdapter SimpleAdapter adapter = new SimpleAdapter(this, dataList, R.layout.item, new String[]{"title", "description"}, new int[]{R.id.title, R.id.description}); // 将adapter设置给ListView ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter);
3. BaseAdapter
BaseAdapter是适配器的基类,可以自定义适配器,下面是一个自定义BaseAdapter的简单示例:
public class MyAdapter extends BaseAdapter { private List<String> dataList; private Context context; public MyAdapter(List<String> dataList, Context context) { this.dataList = dataList; this.context = context; } @Override public int getCount() { return dataList.size(); } @Override public Object getItem(int position) { return dataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { TextView textView; if (convertView == null) { textView = new TextView(context); textView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT)); } else { textView = (TextView) convertView; } textView.setText(dataList.get(position)); return textView; } }
使用自定义的BaseAdapter:
// 初始化数据 List<String> dataList = new ArrayList<>(); for (int i = 0; i < 10; i++) { dataList.add("标题" + i); } // 初始化自定义的BaseAdapter MyAdapter adapter = new MyAdapter(dataList, this); // 将adapter设置给ListView ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter);
下面是一个关于Android适配器(Adapter)的简易介绍,概述了适配器的一些关键概念和用途:
适配器类型 | 描述 | 用途 |
BaseAdapter | 抽象适配器类,需要自定义实现getView()等方法 | 通用列表视图(ListView、GridView)的数据适配 |
ArrayAdapter | 简单的数组适配器,适用于单一文本数据 | 将数组或List集合的数据绑定到列表视图 |
SimpleAdapter | 适用于复杂列表项,使用HashMap映射数据到布局文件中的视图 | 将复杂的键值对数据映射到列表视图 |
CursorAdapter | 适用于使用数据库游标作为数据源 | 将数据库查询结果绑定到列表视图 |
ResourceCursorAdapter | CursorAdapter的子类,简化了视图资源的引用 | 同上,但是简化了资源的使用 |
HeaderViewListAdapter | 适配器包装类,可以添加头视图和脚视图 | 为列表视图添加固定的头部和底部视图 |
ListAdapter | 一个标记接口,表明实现类是一个ListAdapter | 作为适配器类型检查使用 |
每种适配器都有其特定的用途,通常根据需要展示的数据类型和复杂度来选择合适的适配器,如果只需要展示简单的文本列表,ArrayAdapter就足够了;如果需要展示包含多种视图类型的复杂列表,则可能需要使用BaseAdapter或SimpleAdapter。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/690073.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复