Android RecyclerView V7 framework clicks
Android RecyclerView V7 framework clicks
In Android development, RecyclerView is a powerful and flexible layout container for displaying a large number of data items and providing the ability to customize the view layout.Here we will introduce how to deal with the click event in Android Cecyclerview V7 framework.
RecyclerView click Event processing is mainly implemented by clicking the monitor for each sub -item settings for RecyclerView.The following is a specific implementation process:
Step 1: Import the necessary dependencies
First, ensure that the RecyclerView support library is correctly introduced in the project's Build.gradle file, which can be introduced similar to the following ways:
dependencies {
implementation 'com.android.support:recyclerview-v7:28.0.0'
}
Step 2: Create RecyclerView
Then add the RecyclerView control to the layout file and provide it with a unique ID.For example, add the following code to a XML layout file:
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
Step 3: Define the sub -item layout of RecyclerView
Next, create a sub -item layout file that determines the UI display style of each sub -item of RecyclerView and loaded in the adapter.You can freely define the layout style of sub -items according to demand.
Step 4: Create the adapter of RecyclerView
Then, create a adapter class that inherits RecyclerView.adapter. In this class, it is responsible for binding data for RecyclerView and realizing the clicks.The following is a simple adapter example:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
private OnItemClickListener mListener;
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
public TextView mTextView;
public ViewHolder(View itemView) {
super(itemView);
mTextView = itemView.findViewById(R.id.text_view);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (mListener != null) {
int position = getAdapterPosition();
mListener.onItemClick(position);
}
}
}
public interface OnItemClickListener {
void onItemClick(int position);
}
public MyAdapter(List<String> data, OnItemClickListener listener) {
mData = data;
mListener = listener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String item = mData.get(position);
holder.mTextView.setText(item);
}
@Override
public int getItemCount() {
return mData.size();
}
}
In the code of the adapter, the ViewHolder class is responsible for binding the sub -item layout of RecyclerView and setting a clicks to the monitor.When a sub -item is clicked, the click event notification is to the outside by the callback interface.
Step 5: Use the adapter to set the click event monitor of RecyclerView
In activity or fragments, instantiated RecyclerView controls and sets the corresponding adapter and click event monitor:
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = findViewById(R.id.recycler_view);
// Create and bind the adapter
List<String> data = new ArrayList<>();
data.add("item 1");
data.add("item 2");
// ...
MyAdapter adapter = new MyAdapter(data, new MyAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
// Treat the click event
}
});
mRecyclerView.setAdapter(adapter);
}
}
Through instantiated adapter, and transmitting data and clicking event monitor in the constructor, you can set a click event for the sub -itnes of RecyclerView.
Through the above steps, we can handle the clicks in the Android Reyclerview V7 framework.This method can easily realize the clicks of each sub -item in RecyclerView and respond to each clicks.