In my fragment class
public class ReceiveFragment extends Fragment implements ReceiverRecyclerViewAdapter.OnItemClick {
btnGenAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
linearLayoutMyWalletInfo.setVisibility(View.VISIBLE);
linearLayoutGenAddress.setVisibility(View.GONE);
recyclerViewAdapter = new ReceiverRecyclerViewAdapter(getActivity(),subjects, emails,this);
recyclerViewCardContainer.setAdapter(recyclerViewAdapter);
}
});
@Override
public void onClick(String value) {
}
and in the ReceiverRecyclerViewAdapter class i have create one interface and now when i write in the fragment recyclerViewAdapter = new ReceiverRecyclerViewAdapter(getActivity(),subjects, emails,this); } it gives the complie time error when i use "this" parameter.
and my ReceiverRecyclerViewAdapter class
public class ReceiverRecyclerViewAdapter extends RecyclerView.Adapter<ReceiverRecyclerViewAdapter.ViewHolder>{
private OnItemClick mCallback;
public ReceiverRecyclerViewAdapter(Context context1,String[] SubjectValues1, String[] SubjectValues2,OnItemClick listener){
SubjectValues = SubjectValues1;
EmailValues2 = SubjectValues2;
context = context1;
this.mCallback = listener;
}
public interface OnItemClick {
void onClick(String value);
}
itemView.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// get position
int pos = getAdapterPosition();
// check if item still exists
if(pos != RecyclerView.NO_POSITION){
String clickedDataItem = SubjectValues[pos];
Toast.makeText(v.getContext(), "You clicked " + clickedDataItem, Toast.LENGTH_SHORT).show();
mCallback.onClick(clickedDataItem);
}
}
});
}