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

RecyclerView.Adapter getRef(位置).getKey()不工作

RecyclerView.Adapter getRef(位置).getKey()不工作是因为该方法在RecyclerView.Adapter中并不存在。RecyclerView.Adapter是一个抽象类,它主要负责绑定数据和创建视图的工作,而不包含获取位置键的方法。

如果想要获取RecyclerView中某个位置的键值,可以参考以下步骤:

  1. 确保你使用的是RecyclerView的适配器类,如FirebaseRecyclerAdapter或自定义适配器类。
  2. 确保你使用的是支持键值对的数据源,比如使用Firebase数据库。
  3. 在获取位置键之前,首先要获取适配器中的数据集合。这可以通过适配器的getItem方法、getData方法或者自定义方法来实现,具体取决于你使用的适配器类型。
  4. 一旦获取到数据集合,就可以根据位置来获取相应的键值。这可以通过调用数据集合中的相应方法来实现,比如getItemKey方法或者自定义方法。

如果你使用的是FirebaseRecyclerAdapter,并且数据源是Firebase数据库,可以使用以下代码来获取位置键:

代码语言:txt
复制
FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<DataModel, ViewHolder>(options) {
    //...
};

DataModel data = adapter.getItem(位置);
String key = adapter.getRef(位置).getKey();

以上代码通过getItem方法获取指定位置的数据模型,然后通过getRef方法获取该数据模型对应的Firebase数据库中的键值。

请注意,以上代码仅适用于FirebaseRecyclerAdapter,并且数据源为Firebase数据库。对于其他类型的适配器和数据源,具体的实现方式可能会有所不同。

推荐的腾讯云相关产品:

  • 云数据库 TencentDB:https://cloud.tencent.com/product/cdb
  • 云服务器 CVM:https://cloud.tencent.com/product/cvm
  • 云存储 COS:https://cloud.tencent.com/product/cos
  • 人工智能平台 AI Lab:https://cloud.tencent.com/product/ailab
  • 物联网开发平台物联网套件:https://cloud.tencent.com/product/iotexplorer

以上链接提供了腾讯云相关产品的介绍和详细信息,可以进一步了解和使用这些产品来支持你的云计算和开发需求。

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

相关·内容

Akka 指南 之「第 5 部分: 查询设备组」

我们希望查询无限期地继续,因此在以下任何一种情况下,我们都会认为它是完成的: 快照中的所有 Actor 要么已响应,要么确认已停止。 我们达到了预定的(pre-defined)最后期限。...对于我们的用例: 我们直接定义receive,而是委托waitingForReplies函数来创建Receive。...我们希望此第二个事件覆盖已收到的响应。换句话说,我们希望在记录响应之后接收Terminated。这很容易通过调用context.unwatch(ref)实现。...我们在查询 Actor 本身中完成了所有繁重的工作,设备组 Actor 只需要使用正确的初始参数创建它,而不需要其他任何参数。...我们通过测试所有的功能一起工作来结束这一章。

1.1K20
  • Android新组件RecyclerView介绍,其效率更好

    所以要使用RecyclerView,要好好考虑以下几点: (1)、RecyclerView.Adapter (2)、LayoutManager (3)、ItemAnimator 第一点:RecyclerView.Adapter...position); notifyItemRemoved(position); } } 第二点:LayoutManager 这个LayoutManager类决定视图被放在画面中哪个位置...3、RecyclerView优点和缺点 优点: RecyclerView本身它是不关心视图相关的问题的,由于ListView的紧耦合的问题,google的改进就是RecyclerView本身参与任何视图相关的问题...它不关心如何将子View放在合适的位置,也不关心如何分割这些子View,更不关心每个子View各自的外观。更进一步来说就是RecyclerView它只负责回收和重用的工作,这也是它名字的由来。...LayoutManager:将每个条目的视图放置于适当的位置。 ItemDecoration:在每个条目的视图的周围或上面绘制一些装饰视图。

    1.3K90

    Akka 指南 之「第 4 部分: 使用设备组」

    在实践中,自顶向下和自下而上的方法都可以工作,但是在我们的例子中,我们从自下而上的方法中获益,因为它允许我们立即为新特性编写测试,而不需要模拟出稍后需要构建的部分。...他们在注册过程中的工作很简单:回复注册请求并向发送者确认。对于带有匹配的组或设备 ID 的请求,添加一个保护措施也是明智的。 我们假设注册消息发送者的 ID 保留在上层。...lastTemperatureReading), getSelf()); }) .build(); } } 我们现在可以编写两个新的测试用例,一个成功注册,另一个在 ID 匹配时测试用例...当涉及到注册时,组 Actor 有更多的工作要做,包括: 通过将注册请求转发给现有设备 Actor 或创建新 Actor 并转发消息来处理注册请求。...在我们的例子中,组应该在一个设备停止后继续工作,所以我们需要处理Terminated(actorRef)消息。

    54030

    ViewPager2:官方Viewpager升级版来临

    布局 支持竖向滚动 完整支持notifyDataSetChanged API的变动: FragmentStateAdapter替换了原来的 FragmentStatePagerAdapter RecyclerView.Adapter...简单解析 通过查看源码得知,ViewPager2是直接继承ViewGroup的,意味着和ViewPager兼容,类注释上也写了它的作用是取代ViewPager,不过短时间内ViewPager应该还不会被废弃掉...attachToRecyclerView(mRecyclerView); 熟悉RecyclerView的同学都知道,SnapHelper用于辅助RecyclerView在滚动结束时将Item对齐到某个位置... implements StatefulAdapter 这是一个包含FragmentManager和数据状态恢复功能的RecyclerView.Adapter,具体实现可以参看源码...不过目前viewpager2只是第一个预览版,还存在稳定性方面的问题,建议大家引入到正式项目中来,尝尝鲜就好。

    1.7K10

    【RecyclerView】 十三、RecyclerView 数据更新 ( 移动数据 | 数据改变 )

    文章目录 一、移动数据 二、数据改变 三、完整代码示例 四、RecyclerView 相关资料 一、移动数据 ---- 移动数据 : 调用 RecyclerView.Adapter 的 void notifyItemMoved...(int fromPosition, int toPosition) 方法 , 传入的参数是移动前的位置和移动后的位置 ; 该方法的作用是通知任何被注册的观察者 , fromPosition 位置的 item...元素移动到了 toPosition 位置 ; 参数说明 : int fromPosition 参数 : 元素移动前的位置 ; int toPosition 参数 : 元素移动后的新位置 ; 注意 :...int itemCount 参数 : 数据集中被修改元素个数 ; 注意 : 该方法指定数据集发生了哪些变化 , 强制要求任何观察者对象去呈现所有存在的 item 条目和结构 , 这些数据可能已经失效...; * 结构性改变指的是有新的数据被插入 , 删除 , 移动 , 位置发生了改变 ; * * 该事件指定数据集发生了哪些变化 , 强制要求任何观察者对象去呈现所有存在的

    3.4K00

    Akka 指南 之「FSM」

    由于这两种状态下的工作方式相同,因此我们利用以下事实:未由when()块处理的任何事件都传递给whenUnhandled()块: whenUnhandled( matchEvent(...唯一缺少的部分是Batches实际发送到目标的位置,为此我们使用了onTransition机制:你可以声明多个这样的块,如果发生状态转换(即只有当状态实际更改时),所有这些块都将尝试匹配行为。...未处理的事件 如果状态处理接收到的事件,则会记录警告。...在注销的情况下停止侦听器(listener)将不会从订阅列表中删除该侦听器;请在停止侦听器之前使用UnsubscribeTransitionCallback。...计时器取消可以使用: cancelTimer(name) 它保证立即工作,这意味着即使计时器已经启动并将其排队,也不会在调用后处理计划的消息。

    2.7K30

    AsyncListDiffer-RecyclerView最好的伙伴

    局部刷新只会刷新指定position的item,这样完美解决了上述简单粗暴刷新方式的缺点,但是: 局部刷新需要指定item的position,如果你只更新了一条数据,那么你可以很容易知道position位置...你需要计算出所有你需要刷新的position,那么这将是一场灾难 DiffUtil Google似乎也注意到了这一点,因此在support-recyclerview-v7:24.2.0中,推出了一个用于计算哪些位置需要刷新的工具类...否则会造成ui刷新了但数据未更新的bug mAdapter.setData(newList); diffResult.dispatchUpdatesTo(mAdapter); 这样我们就实现了局部刷新位置的计算和局部刷新的实现...,还早着呢,咱们理智分析一下: 首先DiffUtil.calculateDiff()这个方法是执行在主线程的,如果新旧数据List比较大,那么这个方法铁定是会阻塞主线程的 计算出DiffResult...因此Google又推出了一个新的类AsyncListDiff 先来看一波AsyncListDiff的使用方式: public class UserAdapter extends RecyclerView.Adapter

    1.7K10

    数据结构是哈希表(hashTable)

    一种方法是开放地址法,即通过系统的方法找到数组的另一个空位,把数据填入,而不再用哈希函数得到的数组下标,因为该位置已经有数据了;另一种方法是创建一个存放链表的数组,数组内直接存储数据,这样当发生冲突时...如果21是要插入数据的位置,但是它已经被占用了,那么就是用22,然后23,以此类推。数组下标一直递增,直到找到空白位。...* 但是哈希表是根据数组大小计算给定数据的位置的,所以这些数据项不能再放在新数组中和老数组相同的位置上,因此不能直接拷贝,需要按顺序遍历老数组, * 并使用insert方法向新数组中插入每个数据项。...专家们已经发现下面形式的哈希函数工作的非常好:stepSize = constant - key % constant; 其中constant是质数,且小于数组容量。        ...其他同样映射到这个位置的数据项只需要加到链表中,不需要在原始的数组中寻找空位。

    737100

    RecyclerView0基于使用

    LinearLayoutManager能够自己定义实现不同的动画效果和布局效果 //这里设置为LinearLayoutManager.HORIZONTAL变成为了一个能够横向滑动的ListView,赞赞...RecyclerView的Adapter要继承RecyclerView.Adapter,而且ViewHolder要继承与ViewHolder.RecyclerView...详细代码例如以下: public class StringRecyclerAdapter extends RecyclerView.Adapter<StringRecyclerAdapter.ViewHolder...(R.id.textView); //由于RecyclerView没用setOnItemClickListener,所以在这里实现了点击事件 //况且,如今有越来越多的设计,会在每一个item点击不同位置...这里有一个问题,RecyclerView没有setOnItemClickListener方法,所以我在里面对TextView加入了点击事件,如今有越来越多的设计,会在每一个item点击不同位置

    21020

    Android Jetpack架构组件(九)之Paging

    1.2 工作流程 在正式使用Paging之前,我们需要对Paging的工作流程有一个大致的了解。如下图所示,是使用Paging需要经历的几个步骤。...PagedListAdapter继承于RecyclerView.Adapter,这表明它也是一个RecyclerView.Adapter,并且扩展了RecyclerView.Adapter的支持异步差分更新功能...有新页面载入时,滚动条不会跳到指定位置,因为列表不会改变大小。 无需加载旋转图标:由于列表大小已知,因此无需提醒用户正在加载更多项。...ItemKeyedDataSource:用来请求网络数据,它适用于通过当前页面最后一条数据的 id作为下一页的数据的开始的位置的场景。...=null){ page=params.getKey(); } //获取网络数据 ArticleBean result = (ArticleBean

    3.5K20
    领券