Size: a a a

2019 November 02

VM

Vadim Morozov in Kotlin Start
Alexander Levin
Кинь, что из себя представляет targetList (Наверное, что есть Target)
    var targetList: ArrayList<Target> = ArrayList()
источник

VM

Vadim Morozov in Kotlin Start
Alexander Levin
Кинь, что из себя представляет targetList (Наверное, что есть Target)
data class Target(
   val guid: String = "",
   val name: String = "",
   val description: String = "",
   val date: Long = 0L,
   var priority: Int = 0
)
источник

AL

Alexander Levin in Kotlin Start
Vadim Morozov
data class Target(
   val guid: String = "",
   val name: String = "",
   val description: String = "",
   val date: Long = 0L,
   var priority: Int = 0
)
Ну, пока не вижу проблем:

data class Target(
   val guid: String = "",
   val name: String = "",
   val description: String = "",
   val date: Long = 0L,
   var priority: Int = 0
)

fun main() {
   val targetList = mutableListOf(
       Target("guid1", priority = 0),
       Target("guid2", priority = 2),
       Target("guid3", priority = 3),
       Target("guid4", priority = 1),
       Target("guid5", priority = 2)
   )

   println(targetList)

   targetList.sortByDescending { it.priority }

   println(targetList)
}


output:

[Target(guid=guid1, name=, description=, date=0, priority=0), Target(guid=guid2, name=, description=, date=0, priority=2), Target(guid=guid3, name=, description=, date=0, priority=3), Target(guid=guid4, name=, description=, date=0, priority=1), Target(guid=guid5, name=, description=, date=0, priority=2)]
[Target(guid=guid3, name=, description=, date=0, priority=3), Target(guid=guid2, name=, description=, date=0, priority=2), Target(guid=guid5, name=, description=, date=0, priority=2), Target(guid=guid4, name=, description=, date=0, priority=1), Target(guid=guid1, name=, description=, date=0, priority=0)]
источник

VM

Vadim Morozov in Kotlin Start
ну у тебя тоже не сортирует по priority
источник

VM

Vadim Morozov in Kotlin Start
Alexander Levin
Ну, пока не вижу проблем:

data class Target(
   val guid: String = "",
   val name: String = "",
   val description: String = "",
   val date: Long = 0L,
   var priority: Int = 0
)

fun main() {
   val targetList = mutableListOf(
       Target("guid1", priority = 0),
       Target("guid2", priority = 2),
       Target("guid3", priority = 3),
       Target("guid4", priority = 1),
       Target("guid5", priority = 2)
   )

   println(targetList)

   targetList.sortByDescending { it.priority }

   println(targetList)
}


output:

[Target(guid=guid1, name=, description=, date=0, priority=0), Target(guid=guid2, name=, description=, date=0, priority=2), Target(guid=guid3, name=, description=, date=0, priority=3), Target(guid=guid4, name=, description=, date=0, priority=1), Target(guid=guid5, name=, description=, date=0, priority=2)]
[Target(guid=guid3, name=, description=, date=0, priority=3), Target(guid=guid2, name=, description=, date=0, priority=2), Target(guid=guid5, name=, description=, date=0, priority=2), Target(guid=guid4, name=, description=, date=0, priority=1), Target(guid=guid1, name=, description=, date=0, priority=0)]
у тебя priority в разброс
источник

AL

Alexander Levin in Kotlin Start
Vadim Morozov
ну у тебя тоже не сортирует по priority
?

Было: 0, 2, 3, 1, 2
Стало: 3, 2, 2, 1, 0
источник

VM

Vadim Morozov in Kotlin Start
а да вижу
источник

VM

Vadim Morozov in Kotlin Start
хм, я когда вывожу список
то он у меня пустой
источник

VM

Vadim Morozov in Kotlin Start
щас перегляжу код
источник

VM

Vadim Morozov in Kotlin Start
Alexander Levin
?

Было: 0, 2, 3, 1, 2
Стало: 3, 2, 2, 1, 0
теперь почему то у меня список пустой
targetList.sortByDescending { target?.priority }
источник

AM

Andrew Mikhaylov in Kotlin Start
А до сортировки?
источник

VM

Vadim Morozov in Kotlin Start
до сортировки я пишу такое
target?.let { targetList.add(it) }
источник

AM

Andrew Mikhaylov in Kotlin Start
Ну так возьми отладчик и пробегись
источник

AM

Andrew Mikhaylov in Kotlin Start
И позаглядывай на список твой, на другие переменные
источник

AM

Andrew Mikhaylov in Kotlin Start
Александр всё правильно написал, если у тебя не работает -- значит проблемы либо в том, какие ты модификации вносишь, либо в том, что ты не досказал
источник

AM

Andrew Mikhaylov in Kotlin Start
Вот и проверь :)
источник

VM

Vadim Morozov in Kotlin Start
Andrew Mikhaylov
Александр всё правильно написал, если у тебя не работает -- значит проблемы либо в том, какие ты модификации вносишь, либо в том, что ты не досказал
возможно
смотря на его код я полносью согласен

более того я проверяю
в этом участке кода
for (targetSnapshot in dataSnapshot.children) {
                   val target = targetSnapshot.getValue(Target::class.java)
                   target?.let { targetList.add(it) }
               }


Log:
2019-11-02 22:27:07.820 3208-3208/com.mandarine.target_list D/some: getTargetsFromDb [Target(guid=-LrizWpFMU714rExtoit, name=huhy, description=hhhyy, date=0, priority=2)]
2019-11-02 22:27:07.821 3208-3208/com.mandarine.target_list D/some: getTargetsFromDb [Target(guid=-LrizWpFMU714rExtoit, name=huhy, description=hhhyy, date=0, priority=2), Target(guid=-LrizfGg0cKxlftLuL29, name=hhh, description=hhhh, date=0, priority=1)]
2019-11-02 22:27:07.822 3208-3208/com.mandarine.target_list D/some: getTargetsFromDb [Target(guid=-LrizWpFMU714rExtoit, name=huhy, description=hhhyy, date=0, priority=2), Target(guid=-LrizfGg0cKxlftLuL29, name=hhh, description=hhhh, date=0, priority=1), Target(guid=-Ls2Qr_H9jTbchvFBny4, name=hhh, description=hhhh, date=1572134400000, priority=0)]
2019-11-02 22:27:07.823 3208-3208/com.mandarine.target_list D/some: getTargetsFromDb [Target(guid=-LrizWpFMU714rExtoit, name=huhy, description=hhhyy, date=0, priority=2), Target(guid=-LrizfGg0cKxlftLuL29, name=hhh, description=hhhh, date=0, priority=1), Target(guid=-Ls2Qr_H9jTbchvFBny4, name=hhh, description=hhhh, date=1572134400000, priority=0), Target(guid=-LshguMEgE6vPYMUxIQT, name=ооо, description=ооо, date=1574208000000, priority=1)]
2


а здесь
for (targetSnapshot in dataSnapshot.children) {
                   val target = targetSnapshot.getValue(Target::class.java)
                   target?.let { targetList.sortedByDescending { it.priority } }

targetList пустой  []
источник

AM

Andrew Mikhaylov in Kotlin Start
Я нихрена не понял. В первом случае вы, если находите target, добавляете его в targetList, во втором, если вы находите target, вы его не используете, а просто кажый раз сортируете targetList.
источник

AM

Andrew Mikhaylov in Kotlin Start
Перестаньте баловаться .let-ами там, где они не нужны, перепишите с помощью if и прочитайте свой код.
источник

AM

Andrew Mikhaylov in Kotlin Start
Вам предложили один раз сформировать список, а после его наполнения прогнать сортировку.
источник