Как я могу получить общее количество страниц из ответа API на количество элементов на странице и общее количество элементов?

#android #kotlin #android-paging-library

#Android #kotlin #android-библиотека подкачки

Вопрос:

Я извлекаю данные из удаленной конечной точки. Ответ данных содержит только общее количество элементов, но не общую страницу. Как я могу рассчитать общее количество страниц, учитывая, что у меня есть только общее количество элементов и количество элементов на странице? Мне это нужно, потому что я пытаюсь настроить библиотеку подкачки

например:

 perPage = 10
totalItemCount = 10
totalPages = 1
  

Идея в том, что totalItemCount больше 10 1, но меньше или равно 20, TotalPages будет 2; И totalItemCount > 10 10 1 но меньше или равно 30, TotalPages = 3 и так далее…

Я не смог создать хороший алгоритм для вычисления этого с помощью Kotlin

Комментарии:

1. Я думаю, вы хотите использовать комбинацию деления и модуля: totalPages = (totalItemCount / perPage) (totalItemCount % perPage ? 1 : 0)

2. это будет обрабатывать сценарии?

3. Это вернет 0 страниц, если totalItemCount равно 0, 1 страницу, если totalItemCount равно 1-10, 2 страницы, если это 11-20, и так далее.

4. Ах, спасибо. Тестирование

5. Проверьте синтаксис, потому что я не написал ни одной строки Kotlin в своей жизни. И попытайтесь понять, что делают division ( / ), modulus ( % ) и тернарный оператор ( ? ). Вы можете написать это другими способами, но постарайтесь понять идею, стоящую за этой строкой.

Ответ №1:

Кажется, это работает. Я пробовал это вhttps://pl.kotl.in/hUDoamkG3:

 fun main()
{
    val listOfTotalItemCounts = listOf(0, 1, 9, 10, 15, 19, 20, 21, 124)
    val perPage = 10
    
    for (totalItemCount in listOfTotalItemCounts)
    {
        var result = (totalItemCount / perPage)
        result = if (totalItemCount % perPage == 0) result else (result   1)
        
        print("When totalItemCount = ")
        print(totalItemCount)
        print(" ---> result = ")
        println(result)
    }
}
  

Это дает следующий результат:

 When totalItemCount = 0 ---> result = 0
When totalItemCount = 1 ---> result = 1
When totalItemCount = 9 ---> result = 1
When totalItemCount = 10 ---> result = 1
When totalItemCount = 15 ---> result = 2
When totalItemCount = 19 ---> result = 2
When totalItemCount = 20 ---> result = 2
When totalItemCount = 21 ---> result = 3
When totalItemCount = 124 ---> result = 13