单击下一个选项卡项的选项卡项响应

Click on tab itemes response from next tab items

我有一个带有片段寻呼机适配器实现 tablayout 的片段...每个选项卡都有一个带有一些项目的回收视图(所有回收视图都使用相同的回收视图适配器)...通过实现 OnItemClick 侦听器来单击每个项目调用activity 使用 fragmentStatePagerAdapter 实现 viewpager,以显示回收器视图项目...基于 tablayout 的滑动 viewpager 显示上一个或下一个选项卡项目... 每个项目的数据存储在数组列表中。 当我点击当前选项卡中的一个项目时,它喜欢我点击同一位置的下一个选项卡项目 tablayput 片段:

 viewPager = (ViewPager) view.findViewById(R.id.viewpager);
    //setupViewPager(viewPager);
    MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getChildFragmentManager(),getActivity());

    adapter.addFrag(new OneFragment(), "title1");
    adapter.addFrag(new TwoFragment(), "title2");
    adapter.addFrag(new ThreeFragment(), "title3");
    viewPager.setAdapter(adapter);
    tabLayout = (TabLayout) view.findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);

OneFragment 和 TwoFragment 以及...相似:

rv=(RecyclerView) view.findViewById(R.id.rv);

        StaggeredGridLayoutManager sglm = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        rv.setLayoutManager(sglm);
        rv.setHasFixedSize(true);
persons = new ArrayList<>();



          persons.add(new Person("name", "age","email","phone","resume", R.drawable.photo));
     persons.add(new Person("name", "age","email","phone","resume", R.drawable.photo));
    .
    .
    .      

 for (int j=0; j < persons.size() ;j++){
            PersonItem personItem = new PersonItem();
            personItem.setName(persons.get(j).name);
            personItem.setAge(persons.get(j).age);
            personItem.setEmail(persons.get(j).email);
            personItem.setPhone(persons.get(j).phone);
            personItem.setResume(persons.get(j).resume);
            personItem.setImageId(persons.get(j).photoId);
            personList1.addItem(personItem);

 RVAdapter adapter = new RVAdapter(getContext(),persons);


        adapter.setOnItemClickListener(new RVAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(View view, int position) {
                int pos = position;



                Bundle bundle = new Bundle();
                bundle.putSerializable("person", personList1);
                Intent intent = new Intent(getContext(),
                        MyActivity.class);
                intent.putExtras(bundle);
                intent.putExtra("pos", pos);

                startActivity(intent);

            }

        });
        rv.setAdapter(adapter);

回收站视图适配器:

public class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {
    private Context mContext;
    private static OnItemClickListener listener;

   //AdapterView.OnItemClickListener listener;
    // Define the listener interface
    public interface OnItemClickListener {
        void onItemClick(View itemView, int position);
    }
    // Define the method that allows the parent activity or fragment to define the listener
    public void setOnItemClickListener(OnItemClickListener listener) {
        this.listener = listener;
    }


    public static class PersonViewHolder extends RecyclerView.ViewHolder {

        CardView cv;
        TextView personName;
        TextView personAge;
        ImageView personPhoto;

        PersonViewHolder(final View itemView) {
            super(itemView);
            cv = (CardView)itemView.findViewById(R.id.cv);
            personName = (TextView)itemView.findViewById(R.id.person_name);
            personAge = (TextView)itemView.findViewById(R.id.person_age);
            personPhoto = (ImageView)itemView.findViewById(R.id.person_photo);

            // Setup the click listener
            itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // Triggers click upwards to the adapter on click
                    if (listener != null)
                        listener.onItemClick(itemView, getLayoutPosition());
                }
            });
        }
    }

    List<Person> persons;

    public RVAdapter(Context context , List<Person> persons){
        this.persons = persons;
        mContext = context;
    }

    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }

    @Override
    public PersonViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false);
        PersonViewHolder pvh = new PersonViewHolder(v);
        return pvh;
    }

    @Override
    public void onBindViewHolder(PersonViewHolder personViewHolder, int i) {
        personViewHolder.personName.setText(persons.get(i).name);
        personViewHolder.personAge.setText(persons.get(i).age);
        personViewHolder.personPhoto.setImageResource(persons.get(i).photoId);
    }

    @Override
    public int getItemCount() {
        return persons.size();
    }
}

为了解决这个问题,我将我的 RvAdapter class 作为每个选项卡片段中的内部私有 class :

 private static class RVAdapter extends RecyclerView.Adapter<RVAdapter.PersonViewHolder> {

 //...and keep remaning