![](/img/trans.png)
[英]Problem with E/RecyclerView: No adapter attached; skipping layout
[英]Problem: E/RecyclerView: No adapter attached; skipping layout
我需要一個適配器顯示在回收站視圖中。 但它顯示此錯誤 E/RecyclerView: No adapter attached; 跳過布局。 請幫助我,我是開發新手。 我正在使用 kotlin 和片段
`class UsersDashboardFragment: Fragment() {
private val binding: FragmentUsersDashboardBinding? = null
//local variable adapter
private var adapter: RecyclerView.Adapter<*>? = null
//class variable
private val featuredAdapter:FeaturedAdapter? = null
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
activity?.window?.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
val binding: FragmentUsersDashboardBinding =
DataBindingUtil.inflate(
inflater, R.layout.fragment_users_dashboard, container, false
)
featuredRecycler()
return binding.root
}
private fun featuredRecycler() {
binding?.featuredRecycler?.setHasFixedSize(true)
binding?.featuredRecycler?.layoutManager = LinearLayoutManager(context,LinearLayoutManager.HORIZONTAL,false)
//sut up images in recycler view
val featuredLocations : ArrayList<FeaturedHelperClass> = ArrayList()
featuredLocations.add(FeaturedHelperClass(R.drawable.img_1,"Mcdonald's","sdfsdfsdfsdfs sdfd sfds dsfsfsdf "))
featuredLocations.add(FeaturedHelperClass(R.drawable.img_1,"Mcdonald's","sdfsdfsdfsdfs sdfd sfds dsfsfsdf "))
featuredLocations.add(FeaturedHelperClass(R.drawable.img_1,"Mcdonald's","sdfsdfsdfsdfs sdfd sfds dsfsfsdf "))
//call adapter
adapter = FeaturedAdapter(featuredLocations)
binding?.featuredRecycler?.adapter = featuredAdapter
}
}`
帶有 RecyclerView 的布局文件
`<androidx.recyclerview.widget.RecyclerView
android:id="@+id/featured_recycler"
android:layout_width="match_parent"
android:layout_height="280dp"
android:layout_toRightOf="@id/featured_backgtound"
android:background="@color/govno" />`
適配器 class
`public class FeaturedAdapter extends RecyclerView.Adapter<FeaturedAdapter.FeaturedViewHolder> {
ArrayList<FeaturedHelperClass> featuredLocations;
public FeaturedAdapter(ArrayList<FeaturedHelperClass> featuredLocations) {
this.featuredLocations = featuredLocations;
}
public static class FeaturedViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView title,desc;
public FeaturedViewHolder(@NonNull View itemView) {
super(itemView);
image = itemView.findViewById(R.id.featured_image);
title = itemView.findViewById(R.id.featured_title);
desc = itemView.findViewById(R.id.featured_desc);
}
}
@NonNull
@Override
public FeaturedViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.feautured_card_design,parent,false);
FeaturedViewHolder featuredViewHolder = new FeaturedViewHolder(view);
return featuredViewHolder;
}
@Override
public void onBindViewHolder(@NonNull FeaturedViewHolder holder, int position) {
FeaturedHelperClass featuredHelperClass = featuredLocations.get(position);
holder.image.setImageResource(featuredHelperClass.getImage());
holder.title.setText(featuredHelperClass.getTitle());
holder.desc.setText(featuredHelperClass.getDescription());
}
@Override
public int getItemCount() {
return featuredLocations.size();
}
}`
我認為問題出在這段代碼的片段中,但我不知道如何更改它
`
//sut up images in recycler view
val featuredLocations : ArrayList<FeaturedHelperClass> = ArrayList()
featuredLocations.add(FeaturedHelperClass(R.drawable.img_1,"Mcdonald's","sdfsdfsdfsdfs sdfd
sfds dsfsfsdf "))
featuredLocations.add(FeaturedHelperClass(R.drawable.img_1,"Mcdonald's","sdfsdfsdfsdfs sdfd
sfds dsfsfsdf "))
featuredLocations.add(FeaturedHelperClass(R.drawable.img_1,"Mcdonald's","sdfsdfsdfsdfs sdfd sfds dsfsfsdf "))
//call adapter
adapter = FeaturedAdapter(featuredLocations)
binding?.featuredRecycler?.adapter = featuredAdapter
}`
你一直提到binding?
在你的featuredRecycler
function 中,但你從未為這個屬性分配任何東西,所以是這樣的:
binding?.featuredRecycler?.adapter = featuredAdapter
不執行任何操作,因為binding
是 null。
這一行:
val binding: FragmentUsersDashboardBinding =
應該改成
binding: FragmentUsersDashboardBinding =
所以你將綁定分配給你的屬性,而不是一些具有相同名稱的局部變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.