Android fragments 如何使用假数据测试RecyclerView?
我让我的DataFakeGenerator创建一些假数据来测试我的Recycelerview,但是当我想在我的一个片段中使用它时,我有一个错误。 我的错误在这一行: PostAdapter PostAdapter=新的PostAdapter(DataFakeGenerator.getData(this)) 它说我不能用“this”,那么在这个括号里我可以用什么语句呢 这是我的片段: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
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);
}}}