Recyclerview Single Item Id
Ehi, i'm modding an example app i found on the Internet. (learn2crack) I want to get the ID of a single row in my ReclycerView. Here's the code. Main private void initViews(){
Solution 1:
Don't use the OnTouch
event on the RecyclerView itself.
Set up an OnClick
on the view in onBindViewHolder
. When it is fired, call back to the Activity
with the row of the touched item.
Create the adapter with the interface
MyAdapter adp=newMyAdapter(newMyAdapter.InterfaceCommands() {
@OverridepublicvoidOnItemPressed(int position) {
// do something
}
});
Incomplete Example Adapter.
publicclassMyAdapterextendsRecyclerView.Adapter<MyAdapter.VH> {
publicMyAdapter(InterfaceCommands i) {
MyCommands = i;
}
publicinterfaceInterfaceCommands {
publicvoidOnItemPressed(int position);
}
private InterfaceCommands MyCommands;
@OverridepublicvoidonBindViewHolder(final MyAdapter.VH holder, finalint position) {
// Set Up ViewHolder pattern// ....
holder.containerView.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View view) {
intposition= holder.getAdapterPosition();
MyCommands.OnItemPressed(position);
}
});
}
}
Solution 2:
Create an interface called ItemClickListener
publicinterfaceItemClickListener {
voidonClick(int position);
}
Implement this interface in your activity, and keep a reference of adapter input
private ArrayList<AndroidVersion> android_version;
....
....
@OverridepublicvoidonClick(int position) {
AndroidVersionversion= android_version.get(position);
// do your task with retrieved AndroidVersion
}
Change the adapter constructor like below
new DataAdapter(getApplicationContext(),androidVersions, itemClickListener);
Inside the DataAdapter class
viewHolder.tv_android.setOnClickListener(newView.OnClickListener() {
@OverridepublicvoidonClick(View argi) {
//Toast.makeText(context,String.valueOf(i),Toast.LENGTH_SHORT).show();if(itemClickListener != null) {
itemClickListener.onClick(i);
}
}
});
Post a Comment for "Recyclerview Single Item Id"