Anroid中适配器的基本用法
时间: 2023-05-29 10:04:22 浏览: 97
适配器是Android中常用的一种设计模式,主要作用是将数据和布局进行绑定,以便在列表、网格等控件中展示数据。下面介绍适配器的基本用法:
1. 创建适配器类
创建一个继承自BaseAdapter的适配器类,重写以下四个方法:
- getCount():返回数据集合的大小。
- getItem():返回指定位置的数据项。
- getItemId():返回指定位置的数据项的ID。
- getView():返回指定位置的视图。
示例代码:
```
public class MyAdapter extends BaseAdapter {
private List<String> mDataList;
public MyAdapter(List<String> dataList) {
mDataList = dataList;
}
@Override
public int getCount() {
return mDataList.size();
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 创建视图
TextView textView = new TextView(parent.getContext());
textView.setText(mDataList.get(position));
return textView;
}
}
```
2. 绑定适配器
在Activity或Fragment中,获取控件并将适配器绑定到控件上。例如:
```
ListView listView = findViewById(R.id.list_view);
List<String> dataList = new ArrayList<>();
dataList.add("item 1");
dataList.add("item 2");
dataList.add("item 3");
MyAdapter adapter = new MyAdapter(dataList);
listView.setAdapter(adapter);
```
3. 刷新数据
如果数据集合发生变化,需要刷新适配器以更新列表。可以调用适配器的notifyDataSetChanged()方法,例如:
```
dataList.add("item 4");
adapter.notifyDataSetChanged();
```
以上就是适配器的基本用法。适配器还有很多高级用法,如使用ViewHolder优化性能、多种视图类型等,可以根据需求进行扩展。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)