[英]How to Implemet onClick listener insidie Recycleview to open different activities
[英]OnClick Listener Recyclerview to open different activities to open pdf files
我想将OnClickListener
设置为回收站视图,以便它可以打开另一个活动但是每个项目都应该打开一个不同的活动
目前,当单击一个项目时,它会显示一条祝酒消息 请告诉我单击项目时如何打开不同的活动我已附加所有代码->
回收适配器.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));
}
}
请告诉我单击项目时如何打开不同的活动
请根据 position 或 model 将您的监听器设置在 onBindViewHolder 中,您可以设置活动
首先从onCreateViewHolder
中移除clicklistener
假设您在列表中有7 items
,请在onBindViewHolder
中执行此操作
@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());
//handle item click here
holder.item_contact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(position == 0){
//first item clicked
Intent intent = new Intent(nContext,BOOK.class);
nContext.startActivity(intent);
}else if(position == 1){
//second item clicked
Intent intent = new Intent(nContext,AnotherActivity.class);
nContext.startActivity(intent);
}else if(position == 2){
//third item clicked
Intent intent = new Intent(nContext,AnotherActivity.class);
nContext.startActivity(intent);
}else if(position == 3){
//fourth item clicked
Intent intent = new Intent(nContext,AnotherActivity.class);
nContext.startActivity(intent);
}else if(position == 4){
//fifth item clicked
Intent intent = new Intent(nContext,AnotherActivity.class);
nContext.startActivity(intent);
}else if(position == 5){
//sixth item clicked
Intent intent = new Intent(nContext,AnotherActivity.class);
nContext.startActivity(intent);
}else if(position == 6){
//seventh item clicked
Intent intent = new Intent(nContext,AnotherActivity.class);
nContext.startActivity(intent);
}
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.