Java 如何结合Recyclerview和Fragment?

Java 如何结合Recyclerview和Fragment?,java,android,Java,Android,我想在一个使用TabLayoutFragment的活动中合并一个Recyclerview,这样我就可以在不同的列表之间滑动。然而,到目前为止,我只实现了一个列表活动或选项卡式活动,这是android studio的标准活动,但不是两者兼而有之。如果有人能帮上忙,我会很高兴的 AdapterFish.java 请尝试执行以下步骤: 使用工具栏、TabLayout和ViewPager设计activity_main.xml 使用RecyclerView为要为每个选项卡内容显示的片段设计布局XML。 使

我想在一个使用TabLayoutFragment的活动中合并一个Recyclerview,这样我就可以在不同的列表之间滑动。然而,到目前为止,我只实现了一个列表活动或选项卡式活动,这是android studio的标准活动,但不是两者兼而有之。如果有人能帮上忙,我会很高兴的

AdapterFish.java

请尝试执行以下步骤:

使用工具栏、TabLayout和ViewPager设计activity_main.xml 使用RecyclerView为要为每个选项卡内容显示的片段设计布局XML。 使用FragmentPagerAdapter在ViewPager上填充片段 使用ViewPager.setAdapterFragmentPagerAdapter将FragmentPagerAdapter设置为ViewPager 使用TabLayout.setupWithViewPagerViewPager可使ViewPager能够使用TabLayout功能。 对于单个片段,创建RecycleServiceAdapter以将数据填充到RecycleView
这里有一个简单的例子。希望这会有帮助~

为什么不使用viewpager?没有什么可添加的!以下步骤的示例可在此处找到:
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);
        }

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