2017-04-03 3 views
0

私は、異なるリスト間でスワイプできるように、TabLayout(フラグメント)を使用するアクティビティでRecyclerviewを結合したいと考えています。しかしこれまでのところ、私はListActivityまたはタブ付きアクティビティ(Androidスタジオの標準のアクティビティ)のどちらかを実行するだけで、両方を行うことはできません。もし誰かがこれを助けることができたらうれしいでしょう。RecyclerviewとFragmentを組み合わせるには?

AdapterFish.java

import android.content.Context; 
import android.support.v7.widget.RecyclerView; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 
import java.util.Collections; 
import java.util.List; 

public class AdapterFish extends RecyclerView.Adapter<RecyclerView.ViewHolder> { 

    private Context context; 
    private LayoutInflater inflater; 
    List<DataFish> data= Collections.emptyList(); 
    DataFish current; 
    int currentPos=0; 

    // create constructor to innitilize context and data sent from MainActivity 
    public AdapterFish(Context context, List<DataFish> data){ 
     this.context=context; 
     inflater= LayoutInflater.from(context); 
     this.data=data; 
    } 

    // Inflate the layout when viewholder created 

    @Override 
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     View view=inflater.inflate(R.layout.tab2, parent,false); 
     MyHolder holder=new MyHolder(view); 
     return holder; 
    } 

    // Bind data 
    @Override 
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { 

     // Get current position of item in recyclerview to bind data and assign values from list 
     MyHolder myHolder= (MyHolder) holder; 
     DataFish current=data.get(position); 
     myHolder.textmatkul.setText(current.matkul); 
     myHolder.textwaktu_batal.setText("Tanggal Batal: " + current.waktu_batal); 
     myHolder.textwaktu_pengganti.setText("Tanggal Pengganti: " + current.waktu_pengganti); 
     myHolder.textdosen.setText("Nama Dosen: " + current.dosen); 
     myHolder.textruang.setText("Ruang: " + current.ruang); 
     myHolder.textalasan.setText("Alasan: " + current.alasan); 
    } 

    // return total item from List 
    @Override 
    public int getItemCount() { 
     return data.size(); 
    } 

    class MyHolder extends RecyclerView.ViewHolder{ 

     TextView textmatkul; 
     TextView textwaktu_batal; 
     TextView textwaktu_pengganti; 
     TextView textdosen; 
     TextView textruang; 
     TextView textalasan; 

     // create constructor to get widget reference 
     public MyHolder(View itemView) { 
      super(itemView); 
      textmatkul= (TextView) itemView.findViewById(R.id.textmatkul); 
      textwaktu_batal = (TextView) itemView.findViewById(R.id.textwaktu_batal); 
      textwaktu_pengganti = (TextView) itemView.findViewById(R.id.textwaktu_pengganti); 
      textdosen = (TextView) itemView.findViewById(R.id.textdosen); 
      textalasan = (TextView) itemView.findViewById(R.id.textalasan); 
      textruang = (TextView) itemView.findViewById(R.id.textruang); 
     } 

    } 
} 

Tab2.java

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

/** 
* Created by Lamberto on 03/04/2017. 
*/ 

public class Tab2 extends Fragment { 
    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.tab2, container, false); 
    } 
} 
+0

なぜあなたはビューページャーを使わないのですか? – Mucahit

答えて

1

下記の手順しよう:

  1. あなたをデザインToolbarと、TabLayoutViewPager
  2. デザインレイアウトXMLのRecyclerViewでは、各Tabコンテンツを表示するようにしたいあなたのための断片。 TabLayout機能で動作するようにViewPagerに能力を与えるために使用TabLayout.setupWithViewPager(ViewPager)ViewPager.setAdapter(FragmentPagerAdapter)
  3. を使用してViewPagerに設定FragmentPagerAdapter
  4. ViewPagerFragmentsを移入する
  5. 使用FragmentPagerAdapter。個々Fragmentについては
  6. 、ここでRecyclerView

にデータを移入するRecyclerViewAdapterを作成する簡単なtutorialです。これが助けてくれるといいのに〜

+0

何も追加しないでください!この手順の例は、次のURLにあります。http://www.journaldev.com/12958/android-tablayout-viewpager –

関連する問題