随机化LiveData <List <names>

时间:2019-10-24 05:29:29

标签: java android random android-livedata

如何将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 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

fun setRandomOrder() {
    mStudentList.value?.let { students ->
        mStudentList.value = students.shuffled()
    }
}