随机化LiveData

问题描述 投票:0回答:2

如何在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));
}
java android random android-livedata
2个回答
0
投票

您可以使用实时数据转换来处理实时数据。

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

0
投票

如果您对Kotlin解决方案感兴趣,您可以这样做:

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

fun setRandomOrder() {
    mStudentList.value?.let { students ->
        mStudentList.value = students.shuffled()
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.