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 |