Android supports the entry guide for the RecyclerView framework
Android supports the entry guide for the RecyclerView framework
introduce
Android provides the RecyclerView framework as a more flexible and efficient list display component replacing ListView and GridView.RecyclerView's design allows developers to customize the appearance and behavior of the list. At the same time, the view reuse through the viewholder mode improves the performance of the list.
This article will provide you with an entry guide to help you understand the basic concepts, usage, and some common operations of RecyclerView.
1. Import the RecyclerView Library
First, add the dependencies of the RecyclerView library to your project.
In the built.gradle file of the project, add the following code:
groovy
dependencies {
implementation 'androidx.recyclerview:recyclerview:1.2.1'
}
2. Add RecyclerView to the layout file
In your layout file, add the RecyclerView element.For example, add the following code to Activity_main.xml:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
3. Create the adapter of RecyclerView
Next, you need to create a RecyclerView adapter class to manage the display and processing of the list items.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private List<String> dataList;
public MyAdapter(List<String> dataList) {
this.dataList = dataList;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
String data = dataList.get(position);
holder.textView.setText(data);
}
@Override
public int getItemCount() {
return dataList.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView;
public MyViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.item_text);
}
}
}
In the above code, MyAdapter inherits from the RecyclerView.adapter, and writes onCreateViewHolder, onBindViewholder, and getItemcount as required.In this example, the layout in ViewHolder uses a TextView control.
4. Fill RecyclerView data
In your Activity or Fragment, initialize RecyclerView and set the data source and adapter.
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List<String> dataList = new ArrayList<>();
// Add data to DataList ...
adapter = new MyAdapter(dataList);
recyclerView.setAdapter(adapter);
}
}
5. Clicks by handling RecyclerView
Through the iTeMCLICKListener of RecyclerView, the clicks of the list item can be processed.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
// ...
private OnItemClickListener listener;
public void setOnItemClickListener(OnItemClickListener listener) {
this.listener = listener;
}
public interface OnItemClickListener {
void onItemClick(int position);
}
// ...
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
// ...
holder.itemView.setOnClickListener(v -> {
if (listener != null) {
listener.onItemClick(position);
}
});
}
}
Then, add the following code to the clicks to the clicks in Activity.
public class MainActivity extends AppCompatActivity {
// ...
@Override
protected void onCreate(Bundle savedInstanceState) {
// ...
adapter.setOnItemClickListener(position -> {
// Treat the click event
});
}
}
Summarize
Through the RecyclerView framework, we can easily create and manage list views.This article provides an entry guide to help you understand the basic concepts and usage of RecyclerView.I hope you can master the use of the RecyclerView framework through learning and practice.