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

错误消息:E/RecyclerView:未连接适配器;跳过布局

阮雅达
2023-03-14

一切正常,但数据没有显示。

但是当我签入“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:未连接适配器;跳过布局

主要活动。java:

public class MainActivity extends AppCompatActivity {
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference();
    private List<DataModel> dataModels;
    private  SliderAdapter sliderAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setTitle("Tech Videos");

        FirebaseApp.initializeApp(this);

        SliderView sliderView = findViewById(R.id.sliderView);

        sliderAdapter  = new SliderAdapter(this);
        sliderView.setSliderAdapter(sliderAdapter);
        sliderView.setIndicatorAnimation(IndicatorAnimationType.WORM);
        sliderView.setSliderTransformAnimation(SliderAnimations.SIMPLETRANSFORMATION);
        sliderView.setAutoCycleDirection(SliderView.AUTO_CYCLE_DIRECTION_BACK_AND_FORTH);
        sliderView.setIndicatorSelectedColor(Color.WHITE);
        sliderView.setIndicatorUnselectedColor(Color.GRAY);
        sliderView.setScrollTimeInSec(6);   // 6 sec is slider
        sliderView.setAutoCycle(true);
        sliderView.startAutoCycle();
        renewItems(sliderView);

        loadFirebaseForSlider();
    }

    private void loadFirebaseForSlider() {
        myRef.child("trailer").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                for(DataSnapshot contentSlider: snapshot.getChildren()){

                    DataModel sliderItem = contentSlider.getValue(DataModel.class);
                    dataModels.add(sliderItem);
                }
                sliderAdapter.notifyDataSetChanged();

            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {
                Toast.makeText(MainActivity.this, "Data can't fetch"+error.getMessage(), Toast.LENGTH_SHORT).show();
                finish();
            }
        });
    }

    public void loadSliderAdapter(){
        sliderAdapter.notifyDataSetChanged();
    }

    public void renewItems(View view) {
        dataModels = new ArrayList<>();
        DataModel dataItems = new DataModel();
        dataModels.add(dataItems);
        sliderAdapter.renewItems(dataModels);
        sliderAdapter.deleteItems(0);
    }
}

数据模型。java:

package com.example.myplay;

public class DataModel {

    private String Ttitle;
    private String Turl;
    private String Tvid;

    public DataModel() {
    }

    public DataModel(String ttitle, String turl, String tvid){
        Ttitle = ttitle;
        Turl = turl;
        Tvid = tvid;
    }

    public String getTtitle() {
        return Ttitle;
    }

    public void setTtitle(String ttitle) {
        Ttitle = ttitle;
    }

    public String getTurl() {
        return Turl;
    }

    public void setTurl(String turl) {
        Turl = turl;
    }

    public String getTvid() {
        return Tvid;
    }

    public void setTvid(String tvid) {
        Tvid = tvid;
    }
}

滑块适配器。Java语言

package com.example.myplay;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.tabs.TabLayout;
import com.smarteist.autoimageslider.SliderViewAdapter;

import java.util.ArrayList;
import java.util.List;

public class SliderAdapter extends SliderViewAdapter<SliderAdapter.MyViewHolder> {

     private Context context;


    public SliderAdapter(Context context) {
        this.context = context;
    }

    private List<DataModel> dataModels = new ArrayList<>();

    public void renewItems(List<DataModel> dataModels){

        this.dataModels = dataModels;
        notifyDataSetChanged();
    }
    public void deleteItems(int position){
        this.dataModels.remove(position);
        notifyDataSetChanged();
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent) {

      View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.slider_item,
              parent,false);
        return new MyViewHolder(view);


    }

    @Override
    public void onBindViewHolder(MyViewHolder viewHolder, int position) {

        viewHolder.trailer_title.setText(dataModels.get(position).getTtitle());
        Glide.with(viewHolder.itemView).load(dataModels.get(position).getTurl()).into(viewHolder.slider_image);
        viewHolder.play_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent trailer_video = new Intent(context,PlayerActivity.class);
                trailer_video.putExtra("vid",dataModels.get(position).getTvid());
                trailer_video.putExtra("title",dataModels.get(position).getTtitle());
                v.getContext().startActivity(trailer_video);
            }
        });


    }

    @Override
    public int getCount() {
        return dataModels.size();
    }


     public  class MyViewHolder extends SliderViewAdapter.ViewHolder{
        ImageView slider_image;
        TextView trailer_title;
        FloatingActionButton play_button;


        public MyViewHolder(View itemView) {
            super(itemView);

            slider_image = itemView.findViewById(R.id.image_thumbnail);
            trailer_title = itemView.findViewById(R.id.trailer_title);
            play_button = itemView.findViewById(R.id.floatingActionButton);

        }
    }
}

暂时还没有答案

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

  • 我已经创建了一个片段,在该片段中有一个recycle view,但是当我的片段被加载时,什么也没有显示,它给出了这个错误“E/recycle view:没有连接适配器;跳过布局”。下面是适配器和片段类的代码,任何帮助都将不胜感激 适配器类: 片段类: fragment _ view _ all _ my _ recipes . XML view_all_recipe_item.xml

  • 我正在编写一个应用程序,该应用程序通过接收Json文件的API来显示票房的rrank,如果我评论有关的代码,一切都可以正常工作。适配器代码很好,我猜想如果没有,日志是这样的: 我认为代码的顺序是错误的,但不知道确切的...主要活动.java是:

  • 我制作了一个基本的购物清单应用程序,它利用回收器视图来显示列表项目。我正在尝试使用带有片段的导航添加设置屏幕。我遇到了我的回收器视图的问题 主活动.kt HomeFragment.kt 设置Fragment.kt activity_main.xml fragment\u home.xml navigation.xml 不确定是否需要更多信息。提前道歉-我是android studio的新手

  • 我需要帮助,我有一个错误,那就是这个:E/recyclerView:没有连接适配器;跳过布局 代码: 公共视图onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){View View=inflater.inflate(r.layout.fragment_chats,container,

  • 我正在使用Firebase数据库开发一个带有片段和回收器视图的应用程序。我希望该应用程序从数据库中获取数据并将其显示在片段布局中。我非常认为我的代码很好,应该可以正常工作。 我得到错误日志 我在其他问题和论坛上尝试了一切。 这是我的家。java代码: } 我的适配器类: } 我在这方面陷入了困境。提前感谢。