gpt4 book ai didi

android - E/回收站 View : No adapter attached; skipping layout (Using FRAGMENTS)

转载 作者:行者123 更新时间:2023-11-29 15:42:10 24 4
gpt4 key购买 nike

我根据找到的类似问题的答案修改了我的代码,但没有一个有效。我正在使用 TabFragments 和 RecyclerViews。控制台显示错误“E/RecyclerView:未连接适配器;跳过布局”四次。

(修改时还报错“java.lang.NullPointerException: Attempt to invoke virtual method 'void android.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();
}

标签 fragment

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

最佳答案

return inflater.inflate(R.layout.recyclerview_list, container, false); 更改为 return rootView;

关于android - E/回收站 View : No adapter attached; skipping layout (Using FRAGMENTS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38577023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com