首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

I‘m not /RecyclerView:没有连接适配器;跳过布局并且不返回数据,我做错了什么?

根据提供的问答内容,问题描述的是在使用RecyclerView时遇到了"没有连接适配器;跳过布局并且不返回数据"的问题,并询问自己可能做错了什么。

首先,"没有连接适配器;跳过布局并且不返回数据"的错误通常是由于没有正确设置RecyclerView的适配器所导致的。RecyclerView需要一个适配器来提供数据并将其绑定到布局中的视图项上。

要解决这个问题,你需要确保以下几点:

  1. 创建一个适配器类并继承RecyclerView.Adapter。适配器类负责管理数据集合并将数据绑定到RecyclerView的视图项上。
  2. 在适配器类中实现必要的方法,包括创建视图项的方法 onCreateViewHolder()、绑定数据到视图项的方法 onBindViewHolder()、获取数据项数量的方法 getItemCount() 等。
  3. 在RecyclerView所在的Activity或Fragment中,实例化RecyclerView并设置其布局管理器和适配器。
  4. 确保在设置适配器之前,将数据集合传递给适配器,并调用适配器的notifyDataSetChanged()方法来通知RecyclerView刷新数据。

以下是一个示例代码,演示了如何正确设置RecyclerView的适配器:

代码语言:txt
复制
// 创建适配器类
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> data;

    public MyAdapter(List<String> data) {
        this.data = data;
    }

    // 创建视图项
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);
        return new ViewHolder(view);
    }

    // 绑定数据到视图项
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        String item = data.get(position);
        holder.textView.setText(item);
    }

    // 获取数据项数量
    @Override
    public int getItemCount() {
        return data.size();
    }

    // 视图项的ViewHolder
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView textView;

        public ViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.text_view);
        }
    }
}

// 在Activity或Fragment中设置RecyclerView
public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private MyAdapter adapter;
    private List<String> data;

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

        // 初始化数据集合
        data = new ArrayList<>();
        data.add("Item 1");
        data.add("Item 2");
        data.add("Item 3");

        // 实例化RecyclerView
        recyclerView = findViewById(R.id.recycler_view);

        // 设置布局管理器
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        // 创建适配器并设置给RecyclerView
        adapter = new MyAdapter(data);
        recyclerView.setAdapter(adapter);
    }
}

在这个示例中,我们创建了一个适配器类MyAdapter,并在MainActivity中实例化RecyclerView并设置其布局管理器和适配器。同时,我们还创建了一个数据集合data,并将其传递给适配器。最后,我们调用adapter.notifyDataSetChanged()来刷新RecyclerView的数据。

请注意,这只是一个示例,你需要根据自己的实际情况进行适配器的实现和数据集合的管理。

关于RecyclerView的更多信息,你可以参考腾讯云的产品文档:RecyclerView 文档

希望这个答案能够帮助你解决问题!如果还有其他疑问,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android ListView与RecycleView的对比使用解析

我们需要改造一下ArrayAdapter这个适配器 下面便是自定义布局使用的步骤: 1.创建一个item的布局,也就是我们的自定义布局 ?...不知道为什么会有警告,用的public,可以正常使用,若是改为其他,另外那边调用就会出错了 3.创建一个适配器类,使其继承ArrayAdapter<T (T就是第二步定义的类),里面需要一个构造方法,还需要复写...4.准备数据,将数据添加到第三步的适配器类中,之后与上面所说的步骤一样,找到Listview的实例,设置适配器 ? 效果 ?...使用步骤: 1.在布局文件中使用RecyclerView,定义id,宽高与空间相同 2.准备RecyclerView的子项item布局,之后要在适配器类中使用,这里就不在赘述 3.定义个泛型类,如之前在...ListView中所说的T类,适配器的泛型 3.定义一个适配器T类,使其继承RecyclerView.Adapter<T.ViewHolder (ViewHolder是T类中的一个内部类),需要一个构造方法接收数据

1.7K10

Android RecyclerView使用简述

RecyclerView使用简述 前言 正文 一、创建项目 二、RecyclerView基本使用 ① item布局适配器 ② 显示数据 ③ 添加Item点击事件 ④ 添加Item子控件点击事件 ⑤...上拉加载更多 六、RecyclerView布局使用 ① 创建布局Item ② 创建数据Bean ③ 适配器 七、RecyclerView多级列表使用 ① 创建布局Item ② 创建数据Bean ③ 适配器...八、RecyclerView动态更改数据 ① 创建布局item和数据Bean ② 适配器和显示数据 ③ 刷新选中位置数据 九、RecyclerView左右滑动和上下拖动 ① 显示数据 ② ItemTouchHelper...因为下标是从0开始的,这个判断的意义就是知道当前列表是否滑动到底部了,是的话我们再处理是否需要加载更多数据,这里增加了一个条件,如果当前i适配器的item个数大于50则表示已经加载了全部,否则再添加新数据进去...六、RecyclerView布局使用   在前面的使用中我们在操作写适配器的代码时,都是一个item布局,而有时候数据不同需要显示的布局也不同,就存在多布局的情况,这种情况应该怎么处理呢?

2.4K21
  • 简单好用的RecyclerView适配器

    > 代码: · //添加数据 for (int i = 0; i < 20; i++) { strList.add("是普通的条目...这次我们没有传入item布局,而是在MultiItemTypeAdapter中有创建2个实现ItemViewDelegate的适配器,因为从效果图上也可以看出,是2中不用的效果所以两种效果各自用各自的适配器然后在...StatelessSection实现构造方法和3个抽象方法,同时我们又重写了最后2个方法,实现添加头部标题分组的标题(或者叫头部),头部布局就是一个TextView。...里面的方法用一张图来解释更加清晰。如下: ? clipard.png 在使用时我们先创建SectionRVAdapter他是给RecyclerView添加标题布局的一个适配器。...---- 结语 这个适配器称之为万能适配器觉得都不为过。不管你是多复杂的布局只要用到RecyclerView,全部都能实现。用法基本上都讲到了,也全都覆盖了。里面没有讲到的大家可以再继续研究。

    99330

    从0系统学Android--3.6 RecyclerView

    getItemCount() 方法很简单就告诉 RecyclerView 一共有多少子项,直接返回数据源的长度就可以了。 适配器创建好,就可以使用 RecyclerView 了。...然后创建了适配器,将数据传入到适配器中,调用 RecyclerView 的 setAdapter 来完成适配器设置,让 RecyclerView数据产生联系。...new 一个瀑布流的布局管理器就可以了,里面穿的参数分别是 3 代表会把不会分成 3 列,第二个参数传入的是布局的排列方向,对于瀑布流来说一般就是传入 VERTICAL,水平方向没有什么意义。...你可以看到和网格布局没有什么区别啊,不要着急那是因为我们数据的原因,导致了所有的子项高度都一样看上去就和网络布局没有什么区别了。 下面我们来改变数据。...那么你会说了,既然 RecyclerView 这个强大了,各个方面都优于 ListView,但是为什么点击事件没有处理好呢?

    84320

    深入浅出 RecyclerView

    起深入浅出这名字的时候是慎重又慎重的,生怕被人骂标题党,写的什么破玩意还敢说深入浅出。所以还是请大家不要抱着太高的期望,因为没有期望就没有失望,就像陈润说的,超预期嘛。...通用适配器演示】 吐槽 OnItemTouchListener 什么鬼?...好吧,翻遍了 API 列表,就找到了个 OnItemTouchListener ,这特么什么鬼,干嘛要对每个 item 监听触摸屏事件。...Adapter工作原理 首先是适配器适配器的作用都是类似的,用于提供每个 item 视图,返回RecyclerView 作为其子布局添加到内部。...而 RecyclerView返回一个 ViewHolder 并且不是直接将这个 holder 加入到视图内部,而是加入到一个缓存区域,在视图需要的时候去缓存区域找到 holder 再间接的找到 holder

    1.7K60

    RecycleView从0到0.1 | 技术创作特训营第一期

    一、文章快速总结RecycleView是安卓的列表,可以灵活控制每一项的数据布局,动画。Adaper是整体适配器,逻辑放在这里。Holder是每一项的内容,把控件初始化放在这里。...二、RecycleView是什么  RecycleView是Android5.0后谷歌推出的一个用于在有限的窗口中展示大量数据集的控件,位于support-v7包中。...ViewHolder返回,后续item布局里控件都是从ViewHolder中取出 @Override public MyHolder onCreateViewHolder(ViewGroup...void initData(List list) { for (int i = 1; i <= 40; i++) { list.add("第" + i + "条数据...可以看到该适配器类主要有3个方法和1个自定义ViewHolder组成:onCreateViewHolder: 创建ViewHolder返回,后续item布局里控件都是从ViewHolder中取出。

    43811

    recyclerView源码解析

    可以在不完全脱离父 RecyclerView 的情况下重用 Scrap 视图,如果不需要重新绑定则不修改,或者如果视图被认为是脏的则由适配器修改。...,返回是否应该使用 RecyclerView 的 AutoMeasure 机制,或者是否应该由 LayoutManager 的 onMeasure(RecyclerView.Recycler, RecyclerView.State...,处理适配器更新 - //决定应该运行哪个动画 - 保存有关当前视图的信息 - 如有必要,运行预测布局保存其信息 dispatchLayoutStep1...in START return; } if (mLayout == null) {//没有设置LayoutManager,返回...数据重置,需要重新绑定数据detach操作,是一种轻量级的分离,只会把这个View在ViewGroup的children数组中的引用设为null,设置他的parent为null。

    76300

    郭神的抽丝剥茧心法修炼: 深剖RecyclerView

    所以,在阅读 RecyclerView 源码的时候先确定好自己想好了解的功能点: 数据转化为具体的子视图。 视图回收利用方式。 布局多样性原因。 布局动画多样性原因。...阅读姿势:选择了版本为 25.3.1 的 RecyclerView,不知道什么原因,点进 28.0.0 版本的 RecyclerView库中查看 RecyclerView.class 代码时,虽然类缩短至...想要深入原理,没有什么是一遍调试解决不了的,如果有,那就是调试第二遍。 目录 ?...不,因为 RecyclView 中的 Adapter 为空,Adapter 为空,就没有数据,那看一个空视图还有什么意思呢?...如果你的代码中的 RecyclerView 没有使用 Wrap_Content,那么大部分使用场景中的 RecyclerView 长宽的 SpecMode 都为 EXACITY,这么说,不是意味着要抛弃

    1.4K20

    Android:手把手带你全面学习常见的RecylerView!

    那么为什么会添加这么多的步骤呢?...基础概念 4.1 RecyclerView.Adapter 和ListView一样,RecyclerView一样需要适配器,而且这个适配器强制要求了我们必须要用Viewholder,让性能得到优化,而且...使用步骤 定义主xml布局 根据需要定义RecyclerView每行所实现的xml布局 定义一个Adapter类继承RecyclerView.Adapter,重写里面的方法。...定义一个HashMap构成的列表,将数据以键值对的方式存放在里面。 构造Adapter对象,设置适配器。 将RecyclerView绑定到Adapter上。 6....{ /* * RecyclerView布局方向,默认先赋值 * 为纵向布局 * RecyclerView 布局可横向,也可纵向 * 横向和纵向对应的分割想画法不一样

    82430

    Carson带你学Android:手把手带你深入学习RecylerView

    那么为什么会添加这么多的步骤呢?...基础概念 4.1 RecyclerView.Adapter 和ListView一样,RecyclerView一样需要适配器,而且这个适配器强制要求了我们必须要用Viewholder,让性能得到优化,而且...使用步骤 定义主xml布局 根据需要定义RecyclerView每行所实现的xml布局 定义一个Adapter类继承RecyclerView.Adapter,重写里面的方法。...定义一个HashMap构成的列表,将数据以键值对的方式存放在里面。 构造Adapter对象,设置适配器。 将RecyclerView绑定到Adapter上。 6....{ /* * RecyclerView布局方向,默认先赋值 * 为纵向布局 * RecyclerView 布局可横向,也可纵向 * 横向和纵向对应的分割想画法不一样

    58020

    功能强大的Android滚动控件RecyclerView

    3.创建适配器 4.定义数据源 5.通过findViewById找RecylerView列表控件 6.通过setLayoutManager()为RecylerView设置布局管理器 7....什么什么?Sync Now不知道在哪里?0.0 ? 2.打开布局文件: ? ? 当系统添加完的时候,你会发现布局界面还是没有任何东西,别着急!...第二步:布局加入RecyclerView控件以及创建子项布局适配器类。其实第一步咋们已经说过了,直接拖取控件到布局界面就行了。...() { //创建一个集合保存数据 fruitList = new ArrayList< (); //图片就用了几张,然后让他循环变换而已,小伙伴可以自己增加各式的图片...其实RecyclerView还有点击事件的,这里就没有写了。如果后期小伙伴们需要可以添加上去。

    99741

    Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

    limit=30&skip=180&adult=false&first=0&order=hot 在写好天气的时候用过这个接口作为每日壁纸列表的使用。建议用浏览器测试一下找个接口,看有没有数据返回。...这里是有数据返回的,通过返回数据构建一个数据实体,命名为WallPaperResponse,放在model包下,代码如下: public class WallPaperResponse {...四、RecyclerView显示数据   因为返回数据比较多,因此通过RecyclerView来进行显示,作为壁纸显示可以通过更改布局管理器,把列表变成纵向两列的形式去显示,首先我们先修改activity_main.xml...,因为之前的那个父类没有这个属性值,这个属性值可以让你的Image图片很多的形状上的变化,相当Nice!...因为ViewPager2可以在setAdapter时直接设置RecyclerView.Adapter,很方便,因此这里同样需要一个适配器,这里的适配器不打算用原生的来写。 2.

    2.1K20

    RecyclerView实现混合布局

    作为一个新手来说,估计就有点难以招架了,不过用recyclerview就比较好实现了,只要指定Type,来加载不同的布局就可以。下面来简单实现一个简单点的。有一行两个数据,有一行一个数据界面。 ?...,这样就能够实现多种item显示了,我们先来看一下,一共要实现多少方法,他们分别是什么都加了注释。...  c:onBindViewHolder绑定数据 5:主文件中设置recyclerview布局样式,赋值调试  1:Item  xml布局文件和Bean类,ViewHolder创建。...注:bean因demo简洁,并没有用到bean类。一共两个布局,这里只给出一个,类似写出即可。...(gridLayoutManager);  现在运行试试吧 总结: 1:使用RecyclerView必须要写的就是适配器要继承RecyclerView.Adapter<RecyclerView.ViewHolder

    2.2K20

    Android MVVM框架搭建(四)RecyclerVIew + ViewPager2 + BaseQuickAdapter

    limit=30&skip=180&adult=false&first=0&order=hot 在写好天气的时候用过这个接口作为每日壁纸列表的使用。建议用浏览器测试一下找个接口,看有没有数据返回。...这里是有数据返回的,通过返回数据构建一个数据实体,命名为WallPaperResponse,放在model包下,代码如下: public class WallPaperResponse {...四、RecyclerView显示数据   因为返回数据比较多,因此通过RecyclerView来进行显示,作为壁纸显示可以通过更改布局管理器,把列表变成纵向两列的形式去显示,首先我们先修改activity_main.xml...,因为之前的那个父类没有这个属性值,这个属性值可以让你的Image图片很多的形状上的变化,相当Nice!...因为ViewPager2可以在setAdapter时直接设置RecyclerView.Adapter,很方便,因此这里同样需要一个适配器,这里的适配器不打算用原生的来写。 2.

    2.7K10
    领券