recyclerView ViewHolder adapter在recentapp中的使用
时间: 2024-02-26 20:59:01 浏览: 72
在 Android 中,RecyclerView 是一个非常常用的控件,用于展示大量的数据列表。在使用 RecyclerView 时,我们需要创建 ViewHolder 和 Adapter。
ViewHolder 是一个容器,用于存放 RecyclerView 中的每个 item 的视图,我们可以在其中找到 item 中的各个控件。Adapter 则是将数据与 ViewHolder 绑定在一起,用于将数据显示在 RecyclerView 上。
在 RecentApp 中,我们可以按照以下步骤使用 RecyclerView、ViewHolder 和 Adapter:
1. 在 XML 布局文件中添加 RecyclerView 控件:
```
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 创建 ViewHolder 类,用于存放 RecyclerView 中的 item 视图:
```
public class RecentAppViewHolder extends RecyclerView.ViewHolder {
public TextView appName;
public ImageView appIcon;
public RecentAppViewHolder(@NonNull View itemView) {
super(itemView);
appName = itemView.findViewById(R.id.app_name);
appIcon = itemView.findViewById(R.id.app_icon);
}
}
```
3. 创建 Adapter 类,用于将数据与 ViewHolder 绑定在一起:
```
public class RecentAppAdapter extends RecyclerView.Adapter<RecentAppViewHolder> {
private List<AppInfo> appInfoList;
public RecentAppAdapter(List<AppInfo> appInfoList) {
this.appInfoList = appInfoList;
}
@NonNull
@Override
public RecentAppViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_recent_app, parent, false);
return new RecentAppViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecentAppViewHolder holder, int position) {
AppInfo appInfo = appInfoList.get(position);
holder.appName.setText(appInfo.getName());
holder.appIcon.setImageDrawable(appInfo.getIcon());
}
@Override
public int getItemCount() {
return appInfoList.size();
}
}
```
4. 在 Activity 或 Fragment 中初始化 RecyclerView、ViewHolder 和 Adapter:
```
RecyclerView recyclerView = findViewById(R.id.recycler_view);
RecentAppAdapter adapter = new RecentAppAdapter(appInfoList);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
```
这样,就可以在 RecentApp 中使用 RecyclerView、ViewHolder 和 Adapter 来显示最近打开的应用程序了。
阅读全文