我从Youtube教程中复制了回收者视图的代码,但对我来说行不通。新视图。OnClickListener()变灰,Android Studio建议用lambda替换。这是我的代码与教程中代码的唯一区别……应用程序运行了,但没有显示布局,因为我收到错误消息E/RecyclerView:没有连接适配器;跳过布局。
我能做些什么来解决这个问题?
这是适配器类:
package com.example.yourfoodweek;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import java.util.ArrayList;
public class MealsRecViewAdapter extends RecyclerView.Adapter<MealsRecViewAdapter.ViewHolder>{
private static final String TAG = "MealsRecViewAdapter";
private ArrayList <Food> meals = new ArrayList<>();
private Context mContext;
public MealsRecViewAdapter(Context mContext) {
this.mContext = mContext;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_meals_list, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Log.d(TAG, "onBindViewHolder: Called");
holder.txtName.setText(meals.get(position).getName());
Glide.with(mContext)
.asBitmap()
.load(meals.get(position).getImageUrl())
.into(holder.imgFood);
holder.parent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v){
Toast.makeText(mContext, meals.get(position).getName() + "Selected", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public int getItemCount() {
return meals.size();
}
public void setMeals(ArrayList<Food> meals) {
this.meals = meals;
notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder{
private CardView parent;
private ImageView imgFood;
private TextView txtName;
public ViewHolder(@NonNull View itemView){
super(itemView);
parent = itemView.findViewById(R.id.parent);
txtName = itemView.findViewById(R.id.txtMealName);
imgFood = itemView.findViewById(R.id.imgFood);
}
}
}
这两个问题完全不同。第一个是建议,意思是如果你不想申请,你可以跳过它。但我不建议这样做。
例如:
(无Lambda)
myButton.setOnClickListener(new View.OnClickListerner(){
@Override
void onClick(View v) {
// do some stuff related to action
}
});
(与Lambda)
myButton.setOnClickListener(v -> {
// do some stuff related to action
})
未连接布局管理器:
如果您的RecyclerView没有任何LayoutManager连接到它,那么它将跳过,因为它不知道如何安排/显示项目。
一些布局经理:
如果您想创建自己的LayoutManager,您可以通过扩展类LayoutManager来完成
如何使用它:
....
LinearLayoutManager layoutManager = new LinearLayoutManager();
layoutManager.setOrientation = LinearLayoutManager.HORIZONTAL
myRecyclerViewObj.setLayoutManager(layoutManager);
....
未连接适配器
类似于没有布局管理器,当没有适配器连接到回收器视图时,将显示此内容。为此,您必须使用setAdapter方法设置适配器
例如:
....
MealsRecViewAdapter adapter = new MealsRecViewAdapter(this);
myRecyclerViewObj.setAdapter(adapter);
....
一切正常,但数据没有显示。 但是当我签入“logcat”时,我发现了这个错误消息: 2021 10月20日11:29:37.387 7327-7327/com。实例myplay E/RecyclerView:未连接适配器;跳过布局 2021-10-20 11:29:37.388 7327-7327/com.example.myplayE/RecyClerView:未连接适配器;跳过布局 主要活动。
图像不显示。在一个SO例子中说要检查适配器中的计数,但我认为它是正确的。我在logcat中得到这个错误 这是代码主活动 这是我的适配器。
我收到以下错误:“RecyclerView:未连接适配器;跳过布局”,但我已连接适配器...我尝试了许多不同的方法,但我无法解决错误。 我正在使用Volley库获取数据。当我启动活动时,只有进度条可见,直到结束,我收到上面的Logcat消息。我在中添加了带有适配器的。你能帮我吗? 这是我的代码: 主活动 地震适配器 MainActivity.xml 地震法。xml
当应用程序启动时,我得到一个空白屏幕,当我检查日志时,我得到:E/回收人员视图:没有连接适配器;跳过布局错误 我不知道为什么?任何想法,它似乎没有附加回收器视图或添加任何数据,我附加了Main活动、DataAdapter和数据类。 主要活动 数据适配器 下面是我的数据类,将从中提取数据 我ncluded.java 收集器和设置器 这是jsonResponse类,在接口中引用 感谢任何帮助。
它给了我“回收站视图:没有连接适配器;跳过布局“错误,但在我看来适配器已正确连接。请帮忙。 我正在移动我的方法,但它不起作用。我在这里寻找答案,但只有错误实现的适配器存在问题。我不知道这里出了什么问题。
我的片段中的回收视图给我这个错误,但我无法弄清楚。关于这个问题有很多问题,但到目前为止,它们都没有解决我的问题。 这是我的片段中的一段代码: