📌  相关文章
📜  Android RecyclerView列表示例(1)

📅  最后修改于: 2023-12-03 15:13:20.545000             🧑  作者: Mango

Android RecyclerView列表示例

Android RecyclerView是Android的一种高级组件,用于在屏幕上呈现大型数据集合,它是ListView的改进版本,旨在提供更高效的滚动视图和可自定义的交互。在该示例中,我们将展示如何在Android应用程序中使用RecyclerView组件来呈现列表数据。

创建 RecyclerView

要使用RecyclerView,您需要在您的项目中添加RecyclerView库的依赖项。在build.gradle文件中加上以下依赖项:

dependencies {
    implementation 'com.android.support:recyclerview-v7:28.0.0'
}

接下来,在您的布局XML中添加RecyclerView元素,如下所示:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
/>
实现 RecyclerView Adapter

然后,您需要实现一个适配器来为RecyclerView提供数据。在适配器中,我们需要继承RecyclerView.Adapter类,并实现三个方法: onCreateViewHolder, onBindViewHolder和 getItemCount。

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> {

    private ArrayList<String> mData;

    public MyRecyclerViewAdapter(ArrayList<String> data) {
        mData = data;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        Context context = parent.getContext();
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.recyclerview_item, parent, false);
        ViewHolder viewHolder = new ViewHolder(view);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        String text = mData.get(position);
        holder.textView.setText(text);
    }

    @Override
    public int getItemCount() {
        return mData.size();
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView textView;
        public ViewHolder(View itemView) {
            super(itemView);
            textView = (TextView) itemView.findViewById(R.id.textView);
        }
    }
}

适配器中的viewHolder包含了一个TextView,它将显示数据。适配器的绑定方法 onBindViewHolder更新网络视图,但它不更新数据本身。为了跟踪数据的更改,适配器需要保留该数据。

初始化 RecyclerView

我们还需要在java文件中实例化RecyclerView,并将适配器附加到RecyclerView中。

public class MainActivity extends AppCompatActivity {

    RecyclerView recyclerView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 创建一个列表,如果需要展示其他的列表可以自己创建数据
        ArrayList<String> list = new ArrayList<>();
        list.add("Item 1");
        list.add("Item 2");
        list.add("Item 3");
        list.add("Item 4");
        list.add("Item 5");

        // 初始化RecyclerView
        recyclerView = (RecyclerView) findViewById(R.id.recyclerview);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        // 给RecyclerView设置适配器
        MyRecyclerViewAdapter adapter = new MyRecyclerViewAdapter(list);
        recyclerView.setAdapter(adapter);
    }
}

LinearLayoutManager会设置RecyclerView始终是一个垂直列表。如果需要横向滑动,只需要将LayoutManager改为一个 LinearLayoutManager.HORIZONTAL。

现在,您的RecyclerView就已经准备好了,它将在屏幕上呈现您提供的数据。