当前位置: 首页 > 知识库问答 >
问题:

E/回收器视图: 未连接适配器;跳过布局(使用片段)

公西宏毅
2023-03-14

我根据类似问题的答案修改了代码,但没有一个有效。我正在使用TabFragments和RecyclerViews。控制台显示错误“E/RecyclerView:No adapter attached;kipping layout”四次。

(当修改它也给了我错误java.lang.NullPointerException:试图调用虚方法'voidandroid.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)'对空对象引用",也许他们是相关的)。

适配器

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

public ArrayList<Ingredient> dataset = new ArrayList<>();
public Context ctx;


public static class ViewHolder extends RecyclerView.ViewHolder {

    public View view;

    public ViewHolder(View itemView) {
        super(itemView);
        view = itemView;
    }
}

public IngredientAdapter(Context ctx){
    super();
    this.ctx = ctx;
}

@Override
public IngredientAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.ingredient_row, parent, false);

        ViewHolder vh = null;
        vh = new ViewHolder(v);    

        return vh;
}

public void setDataset(ArrayList<Ingredient> dataset) {
    this.dataset.clear();
    this.dataset = dataset;
    this.notifyItemRangeInserted(0, this.dataset.size() - 1);
}

@Override
public void onBindViewHolder(IngredientAdapter.ViewHolder holder, int position) {
    ImageView image = (ImageView) holder.view.findViewById(R.id.ingredient_image);
    image.setImageBitmap(dataset.get(position).getImage());
    TextView name = (TextView)holder.view.findViewById(R.id.ingredient_name);
    name.setText(dataset.get(position).getName());
}

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

}

图片库

public class TabFragmentIngredients extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.recyclerview_list, container, false);
    rootView.setTag("RecyclerViewFragment");
    RecyclerView recycler = (RecyclerView) rootView.findViewById(R.id.recycler_view);


    final LinearLayoutManager layoutManager = new LinearLayoutManager(this.getActivity());
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recycler.setLayoutManager(layoutManager);

    ArrayList ingredients = new ArrayList<Ingredient>();
    ingredients.add(new Ingredient("carrot", BitmapFactory.decodeResource(this.getContext().getResources(),R.drawable.carrot)));
    System.out.println(ingredients.size());
    IngredientAdapter adapter = new IngredientAdapter(this.getContext());
    adapter.setDataset(ingredients);
    recycler.setAdapter(adapter);

    return inflater.inflate(R.layout.recyclerview_list, container, false);
}

}

共有2个答案

郦昆
2023-03-14

我放入适配器:

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.ingredient_row, parent, false);
    return new ViewHolder(v);
}

标签片段中:

return rootView;
别子实
2023-03-14

更改返回inflater.inflate(R.layout.recyclerview_list,容器,false);返回rootView;

 类似资料:
  • 图像不显示。在一个SO例子中说要检查适配器中的计数,但我认为它是正确的。我在logcat中得到这个错误 这是代码主活动 这是我的适配器。

  • 我有“E/RecyclerView:没有连接适配器;跳过布局”错误消息。我在片段中有recycleView,所以我一定是在fragment1.java上做错了什么。 这是代码。如您所见,我在代码上设置了适配器,但我收到此错误。任何帮助将不胜感激。谢谢。 公共类Fragment1扩展片段{ } 公共类圣经适配器扩展回收器View.Adapter { }

  • 我收到以下错误:“RecyclerView:未连接适配器;跳过布局”,但我已连接适配器...我尝试了许多不同的方法,但我无法解决错误。 我正在使用Volley库获取数据。当我启动活动时,只有进度条可见,直到结束,我收到上面的Logcat消息。我在中添加了带有适配器的。你能帮我吗? 这是我的代码: 主活动 地震适配器 MainActivity.xml 地震法。xml

  • 我有一个带有recycler视图的活动,当我单击其中的一个项目时,它会导致带有另一个recycler视图的活动。然而,它一直给我一个“E/RecyclerView:没有适配器连接;跳过布局”错误。 这是onCreate()方法: 我看到了另一个类似于此的问题,即在运行其他线程之前连接适配器,但我不认为在这个活动中还有其他线程在运行。getBundleData()只执行以下操作:

  • 它给了我“回收站视图:没有连接适配器;跳过布局“错误,但在我看来适配器已正确连接。请帮忙。 我正在移动我的方法,但它不起作用。我在这里寻找答案,但只有错误实现的适配器存在问题。我不知道这里出了什么问题。

  • 当应用程序启动时,我得到一个空白屏幕,当我检查日志时,我得到:E/回收人员视图:没有连接适配器;跳过布局错误 我不知道为什么?任何想法,它似乎没有附加回收器视图或添加任何数据,我附加了Main活动、DataAdapter和数据类。 主要活动 数据适配器 下面是我的数据类,将从中提取数据 我ncluded.java 收集器和设置器 这是jsonResponse类,在接口中引用 感谢任何帮助。