Skip to content

Instantly share code, notes, and snippets.

@antonioxtasis
Last active September 11, 2018 20:58
Show Gist options
  • Save antonioxtasis/3398e1dee39db3e9deceec1075dcabf9 to your computer and use it in GitHub Desktop.
Save antonioxtasis/3398e1dee39db3e9deceec1075dcabf9 to your computer and use it in GitHub Desktop.
Android - Adapter respond to Activity using interface
public class MyActivity implements MyAdapter.MyAdapterListener {
...
@Override
public void onMyAdapterButtonClicked(Message message) {
// Some stuff
}
}
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private final ArrayList<Message> messages;
private static FragmentActivity context;
...
private MyAdapterListener mCallback;
public interface MyAdapterListener {
void onMyAdapterButtonClicked(Message message);
}
public MyAdapter(ArrayList<Message> messages, FragmentActivity context) {
this.messages = messages;
this.context = context;
try {
this.mCallback = (MyAdapterListener) context;
} catch (ClassCastException e) { e.printStackTrace(); }
}
...
@Override
public void onBindViewHolder(final ViewHolder holder, int position){
final Message message = messages.get(position);
...
holder.btn.setOnClickListener(v -> {
mCallback.onMyAdapterButtonClicked(message);
});
}
...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment