Android fragments 如何使用假数据测试RecyclerView?

Android fragments 如何使用假数据测试RecyclerView?,android-fragments,android-recyclerview,Android Fragments,Android Recyclerview,我让我的DataFakeGenerator创建一些假数据来测试我的Recycelerview,但是当我想在我的一个片段中使用它时,我有一个错误。 我的错误在这一行: PostAdapter PostAdapter=新的PostAdapter(DataFakeGenerator.getData(this)) 它说我不能用“this”,那么在这个括号里我可以用什么语句呢 这是我的片段: public class Frag_joke extends Fragment { public stati

我让我的DataFakeGenerator创建一些假数据来测试我的Recycelerview,但是当我想在我的一个片段中使用它时,我有一个错误。 我的错误在这一行:

PostAdapter PostAdapter=新的PostAdapter(DataFakeGenerator.getData(this))

它说我不能用“this”,那么在这个括号里我可以用什么语句呢

这是我的片段:

public class Frag_joke extends Fragment {


public  static Fragment instance(){
    Fragment fragment = new Frag_joke();
    return fragment;
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {


    ViewGroup layout = (ViewGroup)inflater.inflate(R.layout.frag_joke,null);
    RecyclerView recyclerView = (RecyclerView)layout.findViewById(R.id.recycler_view);
    PostAdapter postAdapter = new PostAdapter(DataFakeGenerator.getData(this));
    recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity()));
    recyclerView.setAdapter(postAdapter);

   return layout;

}

@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
}}
这是我的DataFakeGenerator:

public class DataFakeGenerator {
public static List<Post> getData(){
    List<Post> posts= new ArrayList<>();
    for(int i=0;i<=6;i++){
        Post post= new Post();
        post.setId(i);
        post.setContent("sample text");
        posts.add(post);
    }

    return posts;
}}
公共类DataFakeGenerator{
公共静态列表getData(){
List posts=new ArrayList();

对于(int i=0;i您可能对您的实现感到困惑。
DataFakeGenerator.getData()
不需要任何参数。只有适配器构造函数才有2

要创建适配器,可以使用以下选项:
PostAdapter PostAdapter=new PostAdapter(getContext(),DataFakeGenerator.getData());


PS:
这个
不适用于适配器创建(如果您实际使用的是代码),因为
片段
不是一个上下文(但活动是,这就是为什么您可以从片段中使用
getContext()
访问它的原因)

哇!这很有效,我不知道“这个”不适合碎片,谢谢,你真的救了我
public class PostAdapter extends RecyclerView.Adapter<PostAdapter.PostViewHolder>{


private Context context;
private List<Post> posts;

public PostAdapter(Context context, List<Post>posts){

    this.context = context;
    this.posts = posts;
}

@Override
public PostViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(context).inflate(R.layout.layout_post,parent,false);
    return new PostViewHolder(view);
}

@Override
public void onBindViewHolder(PostViewHolder holder, int position) {

    Post post=posts.get(position);
    holder.content.setText(post.getContent());
}

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

public class PostViewHolder extends RecyclerView.ViewHolder{


    private TextView content;

    public PostViewHolder(View itemView) {
        super(itemView);
        content=(TextView)itemView.findViewById(R.id.post_content);
    }}}