如何使用 Rxjava 在 Android Kotlin 中过滤数据
Posted
技术标签:
【中文标题】如何使用 Rxjava 在 Android Kotlin 中过滤数据【英文标题】:How to Filter data in Android Kotlin using Rxjava 【发布时间】:2021-07-10 05:40:03 【问题描述】:我想过滤我将从数据库中获取的数据。
这是来自数据库的数据。
"id": 1,
"game_name": "Bắn cá 2021",
"game_menu": "Lời khuyên",
"subtitle": "Sử dụng chiến thuật ria đạn",
"description": "Chiến lược này phù hợp cho người mới bắt đầu. Để tiết kiệm đạn và tăng khả năng chiến thắng, bạn nên tiêu diệt cá nhỏ. Đây là một trong những cách chơi nổi tiếng. Nhiều người chơi bỏ qua những con cá nhỏ này và luôn nhìn vào những con cá lớn. Thật là sai lầm! Đối với người mới bắt đầu, đây không phải là một cách hay. Nếu bạn áp dụng lối suy nghĩ giống như những người chơi khác, bạn chắc chắn sẽ mất hết vốn!",
"image": null
,
"id": 2,
"game_name": "Bắn cá 2021",
"game_menu": "Lời khuyên",
"subtitle": "Bắn cá ngay khi chúng xuất hiện",
"description": "Khi nó xuất hiện, hãy nhắm ngay lập tức. Bằng cách này, bạn chắc chắn sẽ nhận được nhiều xu thay vì bắn theo được những con cá lớn.",
"image": null
,
"id": 3,
"game_name": "Bắn cá 2021",
"game_menu": "Lời khuyên",
"subtitle": "Đạn đủ, cá sẽ chết.",
"description": "Đối với một con cá trị giá 5 điểm, bạn cần bắn 10 viên đạn để tiêu diệt nó. Để có thể bắn được cần phải thao tác chính xác và nhanh chóng, vì số lượng cá rất đông. Đừng lo lắng về việc lãng phí đạn, vì nếu áp dụng thành công theo cách này, bạn sẽ nhận được một khoản tiền thưởng hậu hĩnh.",
"image": null
,
"id": 14,
"game_name": "MÁY BẮN CÁ -SÒNG BẠC",
"game_menu": "Tips",
"subtitle": "Bắn đủ đạn và cá sẽ chết",
"description": "Hầu hết người chơi đều cho rằng “bắn đủ đạn sẽ chết” và cho rằng đây là một chiến thuật.\r\n\r\nVí dụ như con cá nó chỉ cần 4 phát bắn nhưng bạn dã bắn lên đến 10 phát thì nó chắc chắn sẽ chết. Tuy nhiên, bạn có biết một số con cá chỉ bắn 1, 2 viên đạn đã chết, nhưng bắn tới 6 viên đạn vẫn chưa chết. Cá chỉ chết khi bạn bắn đủ 10 viên đạn.\r\n\r\nDo đó, nhiều người áp dụng:\r\n\r\n+ Nếu có 4 người chơi thì 3 người cùng bắn 1 con và mỗi người bắn 3 phát, thì con cá vẫn chưa chết ,và lúc này tôi chỉ cần bắn 1 phát là chết\r\n\r\nĐây có vẻ là một chiến lược tốt, nhưng nó chỉ có thể được áp dụng hiệu quả trong một số tình huống nhất định. Vì nếu trên bàn bắn cá không có nhiều người chơi, hoặc số lượng cá biến động, bạn sẽ không thể nhớ được số lượng đạn của mỗi con cá.",
"image": null
,
"id": 15,
"game_name": "MÁY BẮN CÁ -SÒNG BẠC",
"game_menu": "Tips",
"subtitle": "Sử dụng chiến thuật ria đạn",
"description": "Tâm lý của hầu hết người chơi là tập trung bắn con cá lớn để giành nhiều điểm mà bỏ qua con cá nhỏ. Đây là một chiến lược trò chơi hoàn toàn sai lầm. Đặc biệt, nếu bạn là người mới chơi thì đừng bao giờ mạo hiểm chơi loại game này. Vì không những không giết được cá mà còn khiến bạn mất điểm và đạn.\r\n\r\nLưu ý: Nếu cá chết do đạn lạc (dù là cá nhỏ hay cá tiên) thì số điểm không thuộc về bạn (cá chết do đạn lạc)\r\n\r\nThay vào đó, hãy sử dụng góc nhỏ của máy bắn cá (máy có chế độ bắn hàng loạt đạn cá chết). Bạn nên sử dụng các chiến lược sau cho trò chơi:\r\n\r\n+ Liên tục xoay nòng súng quanh bàn rồi bắn một phát sao cho 2 viên đạn không bay cùng chiều (nếu cùng chiều thì 2 viên đạn chỉ bắn trúng 1 con cá. Giả sử là 2 con cá, nhưng không chết, thì bạn đã bị lãng phí\r\n\r\n+ Nên bắn chậm để mọi người đi một hướng và ai cũng bắn trúng 1 phát. Đối với cá lớn thì nên tập trung bắn thêm 1 2 hoặc 3 đạn nữa (tùy từng con)\r\n\r\n+ Không tập trung râu ở nhiều vị trí khác nhau.\r\n\r\nƯu điểm của trò chơi này là xác suất chết cao hơn. Viên đạn bắn ra nhiều hướng và trúng nhiều con cá, nếu hụt thì viên sẽ đạn trúng con cá khác. Kết hợp với việc tập trung 2, 3 hoặc 10 viên cho những con cá lớn hơn thì khả năng bắn cá của bạn sẽ cao hơn rất nhiều với những người chỉ tập trung bắn những con cá lớn.",
"image": null
我只想在我的 View 类上显示“Bắn cá 2021”。
我是这样称呼它的。
private fun getItem()
disposable.add(
apiService.getItem()
.subscribeOn(Schedulers.newThread())
.observeOn(androidSchedulers.mainThread())
.subscribeWith(object : DisposableSingleObserver<List<ItemModel>>()
override fun onSuccess(value: List<ItemModel>?)
itemData.value = value!!
homeLoadError.value = false
override fun onError(e: Throwable?)
homeLoadError.value = true
)
)
我想在我的数据库中使用“game_name”列来过滤数据。
【问题讨论】:
您不想只更改查询吗? 不,兄弟,我不能,因为它来自 API 【参考方案1】:您可以使用 kotlin filter 根据名称过滤列表
val list=ArrayList(value.filter it.game_name=="Bắn cá 2021" )
itemData.value = list
【讨论】:
以上是关于如何使用 Rxjava 在 Android Kotlin 中过滤数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Rxjava 在 Android Kotlin 中过滤数据