java - 添加 Recyclerview 的 itemview 总计 "views"的最佳实践是什么?

标签 java android

[在此处输入图像描述][1]在每个社交媒体中我都看到 TextView 被称为“ View ”。

那么“ View ”实际上意味着什么东西以及何时计算+1(添加)?

情况 1:每当用户滑动 recyclerview 且任何 itemview 出现在屏幕区域内时,itemview“ View ”都会计数 +1。

情况2:每当用户点击itemview时,itemview的“浏览次数”就会增加1。(我知道这种情况如何实现)

我认为可能是这两者之一。如果情况 1 最好,请告诉我们如何在 onBindViewHolder 或任何其他情况下开始,请建议

/image/VPRU5.png 我添加了一个来自 fb 的例子。 总浏览” 。 这篇文章的点击总数是多少?

最佳答案

来自 Facebook 的观看次数与 View 完全不同。 Android 中使用的。

在 Android 中,View是 Android 中的一个基本元素,然后由其他类扩展以向其中添加自己的一些属性 View .

例如,

class TextView extends View{}

这是面向对象编程中的继承的基本问题。

继承意味着,考虑一个例子,您创建一个名为“Car”的基类,在其中编写基本汽车的代码,例如“汽车有四个轮胎”,以及汽车具有的所有基本属性。然后,您创建另一个类,称为 Bus,并使其扩展此 Car 类,以便总线将具有其父类“Car”的属性,并且能够添加其自身的一些属性,例如“Bus is long” 。所以在这里,类“Car”就像“View”,而类“Bus”就像TextView。

例如,TextView扩展了 View 的功能类能够在其中显示一些文本/字符串。 TextView称为 View ,因为它继承了基本View的属性类,并添加了一些自己的内容。

如果您询问如何在 Facebook 等帖子功能上实现“总浏览量”,则必须添加每次 onBindViewHolder 都会执行的代码。被称为 RecyclerView .

所以,在 onBindViewHolder ,您将调用该函数来获取当前的观看次数,然后增加该值并将其添加到该帖子的数据库中。

您给出了两个案例,

编辑:

正如您在评论中所问的,您想要:

  1. 每当用户看到该帖子时,就会增加数据库中的 View 。

    为此,您需要调用类似 private void incrementTotalViews(); 的函数里面onBindViewHolder您的RecyclerView.Adapter ,这个函数应该获取最新的 View ,将其加 1,然后将新的数字设置到数据库中。尽管如此,即使用户退出帖子并再次回来,这也会被一次又一次地调用。

  2. 您希望在单击布局时存储访问者总数的值。 为此,您需要调用 ViewHolder 中的函数,每当单击 itemView 时就会调用它。

所以你需要添加类似的内容,

itemView.setOnClickListener()

低于super(itemView)在 ViewHolder 构造函数中。在此监听器的 onClick 中,您需要调用一个函数来存储总访问者的值。

关于java - 添加 Recyclerview 的 itemview 总计 "views"的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56483251/

相关文章:

java - 最精确的正则表达式匹配

java - OpenGL LWJGL 可调整大小的纹理立方体

java - 从java中的另一个窗口获取值

java - RxJava 背压(快速生产者慢消费者)

java - 如何配置logging.properties将内容放入Java类中(没有包装模式)?

java - 在流Java中拆分字符串

android - 使用套接字时避免垃圾收集

android - Jetpack Compose 无法在多模块项目中编译

android - setImageResource 和内存泄漏

android - android studio中的庆祝动画