0

フラグメントページャーアダプターにはタブレイアウトが実装されています...各タブにはいくつかの項目(すべてのrecylerviewsの同じリサイラー表示アダプター)を持つリサイクラービューがあります... OnItemClickリスナー各項目をクリックすると、fragmentStatePagerAdapterのビューページを実装するアクティビティが呼び出され、リサイクルビューアイテムが表示されます。tablayoutのスワイプに基づいて、前または次のタブアイテムを表示します。 各アイテムのデータがarraylistに格納されます。 私はそれは私が同じ位置 tablayputフラグメントで次のタブの項目をクリックしています好きな現在のタブ内の1つの項目にclckingてるとき:次のタブ項目のタブ項目をクリックしてください

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); 

リサイクル・ビュー・アダプタ:各内側とプライベートクラスとして、私は私のRvAdapterクラス作りました。この問題を解決するための

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(); 
    } 
} 

答えて

0

タブフラグメント:

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

//...and keep remaning 
関連する問題