Рандомизировать LiveData - PullRequest
       10

Рандомизировать LiveData

0 голосов
/ 24 октября 2019

Как я могу рандомизировать LiveData<list<StudentEntity>> в ViewModel и отображать результаты в моем RecyclerView? Я думал, что смогу сделать

Collection.shuffle(Arrays.asList(myList))

, но я не верю, что это меняет порядок объектов в LiveDatalist.

MyFragment

....
public void RandomizeListOrder() {
    mMainActivityViewModel.setRandomOrder();
    adapter.notifyDataSetChanged();
}

ViewModel

private LiveData<List<StudentEntity>> mStudentList

public void setRandomOrder() {
    Collection.shuffle(Arrays.asList(mStudentList));
}

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Ну, если вы заинтересованы в решении Kotlin, вы можете сделать это так:

val mStudentList = MutableLiveData<List<StudentEntity>>()

fun setRandomOrder() {
    mStudentList.value?.let { students ->
        mStudentList.value = students.shuffled()
    }
}
0 голосов
/ 24 октября 2019

Вы можете манипулировать жизненными данными, используя преобразования жизненных данных.

val transformedLiveData = Transformations.map(
                yourActualLiveData) { //Shuffle logic here }
...