大锯老师,我这个明明设置了Adapter它一直说没Adapter,这是为什么啊

我一开始以为学着您那种回调的模式,设置数据。我以为写错了,然后顺序执行错了,才报的这个错误。改了好长时间,最后都把整个整合到一起了,还是这个错误,我就蒙蔽了,把整个框架都删了也没用
运行是这个样子,需要的话我把我网络框架也贴出来

/**
* 主页上设备传感器的fragment
*/
public class EquipmentSensorFragment extends BaseFragment{
private static final String TAG = "EquipmentSensorFragment";
private View rootView;
private RecyclerView gridHomeEquipmentSensor;
private GridHomeEquipmentSensorAdapter adapter;
private List<BeanData.ResultObjBean> resultObj;
@Override
protected void registerListener() { }
@Override
protected void loadData() {
getAllEquipmentSensors(getContext());
// 设置布局管理器
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(),2);
gridLayoutManager.setOrientation(RecyclerView.VERTICAL);
gridLayoutManager.setReverseLayout(false);
gridHomeEquipmentSensor.setLayoutManager(gridLayoutManager);
// 设置适配器
adapter = new GridHomeEquipmentSensorAdapter(getContext());
gridHomeEquipmentSensor.setAdapter(adapter);
}
private void getAllEquipmentSensors(Context context) {
RetrofitUtil.getRetrofitUtil().getRetrofitApiInstance().getSensors("306015","",
DataCacheToSP.getAccessToken(context))
.enqueue(new MyBaseCallBack<BeanData>(context) {
@Override
protected void onSuccess(BeanData response) {
if (response.getStatus() == 0) {
Log.e(TAG,"onSuccess()执行,初步获取到数据!---1");
resultObj = response.getResultObj();
adapter.refresh(resultObj);
}else {
Toast.makeText(getContext(),"数据为空",Toast.LENGTH_LONG).show();
}
}
});
}
@Override
protected void initView(View rootView) {
gridHomeEquipmentSensor = rootView.findViewById(R.id.grid_home_equipment_sensor);
}
@Override
protected View onSubViewLoaded(LayoutInflater inflater, ViewGroup container) {
rootView = inflater.inflate(R.layout.fragment_equipment_sensor, container, false);
return rootView;
}
}
public class GridHomeEquipmentSensorAdapter extends RecyclerView.Adapter<GridHomeEquipmentSensorAdapter.GridHomeEquipmentSensorInnerHolder> {
private static final String TAG = "EquipmentSensorAdapter";
private Context context;
private List<BeanData.ResultObjBean> mSensorInfoList = new ArrayList<>();
public GridHomeEquipmentSensorAdapter(Context context) {
this.context = context;
}
public void refresh(List<BeanData.ResultObjBean> sensorInfoList){
if (this.mSensorInfoList != null) {
this.mSensorInfoList.clear();
this.mSensorInfoList.addAll(sensorInfoList);
}
notifyDataSetChanged();
Log.e(TAG,"数据更新成功!------------5");
}
@NonNull
@Override
public GridHomeEquipmentSensorInnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(context).inflate(R.layout.item_home_equipment_sensor,parent,false);
return new GridHomeEquipmentSensorInnerHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull GridHomeEquipmentSensorInnerHolder holder, int position) {
holder.itemView.setTag(position);
holder.initItemView(mSensorInfoList,position,context);
// holder.switchEquipmentType(sensorInfoList,position,context);
}
@Override
public int getItemCount() {
if (mSensorInfoList != null) {
return mSensorInfoList.size();
}
return 0;
}
public static class GridHomeEquipmentSensorInnerHolder extends RecyclerView.ViewHolder {
public GridHomeEquipmentSensorInnerHolder(@NonNull View itemView) {
super(itemView);
}
/**
* 由于我们当前查询是模糊查询所有,所以设备类型有所不同,在这个加以判断
* @param sensorInfoList List<EquipmentSensorInfo> sensorInfoList
* @param position 对应位置上的View
*/
@SuppressLint("SetTextI18n")
public void initItemView(List<BeanData.ResultObjBean> sensorInfoList, int position, Context context) {
ImageView imgIconEquipmentSensor = itemView.findViewById(R.id.img_icon_equipment_sensor);
TextView txtTitleEquipmentSensor = itemView.findViewById(R.id.txt_title_equipment_sensor);
Switch swControlEquipment = itemView.findViewById(R.id.sw_control_equipment);
TextView txtDataEquipmentSensor = itemView.findViewById(R.id.txt_data_equipment_sensor);
// 设备传感器图标
imgIconEquipmentSensor.setImageResource(R.drawable.m_temperature);
// Glide.with(context).load()
// 获取设备传感器名称,此项是每个设备都有的
txtTitleEquipmentSensor.setText(sensorInfoList.get(position).getName());
// 如果有“Unit”单位的属性返回,那么此设备为传感器类型
if (sensorInfoList.contains(sensorInfoList.get(position).getUnit())) {
// 传感器数据
double value = sensorInfoList.get(position).getValue();
// 单位
String unit = sensorInfoList.get(position).getUnit();
txtDataEquipmentSensor.setText(value + unit);
}
// 如果有“OperType”类型返回,则为执行器
if (sensorInfoList.contains(sensorInfoList.get(position).getOperType())) {
// 打开
if (sensorInfoList.get(position).getOperType() == 1) {
swControlEquipment.setChecked(true);
}
if (sensorInfoList.get(position).getOperType() == 0) {
swControlEquipment.setChecked(false);
}
if (sensorInfoList.get(position).getOperType() == 2) {
Toast.makeText(context,"当前为暂停状态 = " + sensorInfoList.get(position).getOperType(),Toast.LENGTH_SHORT).show();
}
}
}
}
}
public abstract class BaseFragment extends Fragment {
private View rootView;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rootView = onSubViewLoaded(inflater,container);
initView(rootView);
loadData();
registerListener();
return rootView;
}
/**
* 注册监听
*/
protected abstract void registerListener();
/**
* 加载数据
*/
protected abstract void loadData();
/**
* 初始化布局
*/
protected abstract void initView(View rootView);
/**
* 绑定布局文件
* @param inflater 布局填充器
* @param container ViewGroup容器
* @return 与布局文件绑定的View
*/
protected abstract View onSubViewLoaded(LayoutInflater inflater, ViewGroup container);
}
从你的代码上来看,没看出啥问题。
可是你这个log不一定是UI展示时输出的。
最好看logcat输出的log,而不是run的log。
我一开始以为学着您那种回调的模式,设置数据。我以为写错了,然后顺序执行错了,才报的这个错误。改了好长时间,最后都把整个整合到一起了,还是这个错误,我就蒙蔽了,把整个框架都删了也没用