2021-04-28 16일차

2021. 4. 29. 09:28공부 기록

  • 게시물 페이징기능, 검색기능 나누기

// 페이징&검색

fun getFilteredArticles(searchKeyword: String, page: Int, itemsCountInAPage: Int): List<Article> {
val filtered1Articles = getSearchKeywordFilteredArticles(articles, searchKeyword)
val filtered2Articles = getPageFilteredArticles(filtered1Articles, page, itemsCountInAPage)

return filtered2Articles
}
// 검색
private fun getSearchKeywordFilteredArticles(articles: List<Article>, searchKeyword: String): List<Article> {
val filteredArticles = mutableListOf<Article>()

for (article in articles) {
if (article.title.contains(searchKeyword)) {
filteredArticles.add(article)
}
}

return filteredArticles
}
// 페이징
private fun getPageFilteredArticles(articles: List<Article>, page: Int, itemsCountInAPage: Int): List<Article> {
val filteredArticles = mutableListOf<Article>()

val offsetCount = (page - 1) * itemsCountInAPage

val startIndex = articles.lastIndex - offsetCount
var endIndex = startIndex - (itemsCountInAPage - 1)

if (endIndex < 0) {
endIndex = 0
}

for (i in startIndex downTo endIndex) {
filteredArticles.add(articles[i])
}

return filteredArticles
}

'공부 기록' 카테고리의 다른 글

2021-04-30 18일차  (0) 2021.05.03
2021-04-29 17일차  (0) 2021.04.29
2021-04-27 15일차  (0) 2021.04.27
2021-04-26 14일차  (0) 2021.04.26
2021-04-25 13일차  (0) 2021.04.25