Я хочу установить OnClickListener
для представления переработчика, чтобы он мог открывать другое действие. Но каждый элемент должен открывать другое действие
В настоящее время, когда по элементу нажимают, он показывает всплывающее сообщение. Пожалуйста, сообщите Как открыть разные действия при нажатии на элементы? Я прикрепил весь код ->
RecyclerAdapter. java
public class RecyclerViewAdapter extends
RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
Context nContext;
List<Contact> nData;
private ItemClickListener mClickListener;
public RecyclerViewAdapter(Context nContext, List<Contact> nData) {
this.nContext = nContext;
this.nData = nData;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v;
v = LayoutInflater.from(nContext).inflate(R.layout.item_contact,parent,false);
MyViewHolder vHolder = new MyViewHolder(v);
vHolder.item_contact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(nContext,BOOK.class); //All the items open same pdf...
// I want to open different pdfs after clickeig different items in recyclerview
nContext.startActivity(intent);
}
});
return vHolder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.tv_name.setText(nData.get(position).getName());
holder.tv_phone.setText(nData.get(position).getPhone());
holder.img.setImageResource(nData.get(position).getPhoto());
}
@Override
public int getItemCount() {
return nData.size();
}
public static class MyViewHolder extends RecyclerView.ViewHolder {
private TextView tv_name;
private TextView tv_phone;
private ImageView img;
private LinearLayout item_contact;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
item_contact = (LinearLayout) itemView.findViewById(R.id.contact_item_id);
tv_name = (TextView) itemView.findViewById(R.id.name_contact);
tv_phone = (TextView) itemView.findViewById(R.id.phone_contact);
img= (ImageView) itemView.findViewById(R.id.img_contact);
}
}
}
Фрагмент. java ->
public class FragmentContact extends Fragment {
View v;
private RecyclerView myrecyclerview;
private DatabaseReference mDatabase;
MyAdapter2 myadapter;
private List<Contact> lstContact;
public FragmentContact() {
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
v = inflater.inflate(R.layout.contact_fragment, container, false);
myrecyclerview = (RecyclerView) v.findViewById(R.id.contact_recyclerview);
RecyclerViewAdapter recyclerAdapter = new RecyclerViewAdapter(getContext(), lstContact);
myrecyclerview.setLayoutManager(new LinearLayoutManager(getActivity()));
myrecyclerview.setAdapter(recyclerAdapter);
return v;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
lstContact = new ArrayList<>();
lstContact.add(new Contact("Aron Jones", "(111) 251236211", R.drawable.team));
lstContact.add(new Contact("Amy 1", "(216) 2221254", R.drawable.team));
lstContact.add(new Contact("Amy 2", "(216) 2221254", R.drawable.team));
lstContact.add(new Contact("Amy 3", "(216) 2221254", R.drawable.team));
lstContact.add(new Contact("Amy 4", "(216) 2221254", R.drawable.team));
lstContact.add(new Contact("Amy 5", "(216) 2221254", R.drawable.team));
lstContact.add(new Contact("Aron Jones", "(111) 251236211", R.drawable.team));
//lstContact.add(new Contact ("Amy","(216) 2221254",R.drawable.team));
//lstContact.add(new Contact ("Amy","(216) 2221254",R.drawable.team));
//lstContact.add(new Contact ("Amy","(216) 2221254",R.drawable.team));
//lstContact.add(new Contact ("Amy","(216) 2221254",R.drawable.team));
// lstContact.add(new Contact ("Amy","(216) 2221254",R.drawable.team));
}
}
Скажите, пожалуйста, как открывать различные действия при нажатии на элементы