gpt4 book ai didi

java - 如何生成不重复的随机布局

转载 作者:行者123 更新时间:2023-12-01 13:39:34 24 4
gpt4 key购买 nike

public class Music extends Activity {
private int [] layouts = {
R.layout.question_selector,
R.layout.question_selector2,
R.layout.question_selector3,
R.layout.queston_selector4,
R.layout.question_selector5,
};

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);

int i = layouts.length;
Random r = new Random();

while (--i > 0) {
int j = r.nextInt(i + 1);

//swap values
int temp = layouts[j];
layouts[j] = layouts[i];
layouts[i] = temp;

}
setContentView(layouts[i]);
}
}

这是我到目前为止所做的:它工作得很好,但我注意到有时某些布局会一遍又一遍地显示。我想要的是,当我按下按钮时,它会随机生成一个布局,下次我再次按下按钮时,它不应该重复之前显示的布局。我怎么能做这样的事呢?

最佳答案

您可以创建一个arrayList,然后shuffle它而不是使用Random的数组,这将使其随机,但每个项目只使用一次

编辑,代码示例:

     ArrayList<int> mArrayList = new ArrayList<int>;
//OR ArrayList<int> mArrayList = new ArrayList<int>(Arrays.asList(mOrdinaryArray));
mArrayList.put(R.blabla.blabla);
mArrayList.put(R.blabla.blablatwo);
Collections.shuffle(mArrayList);
Log.d(TAG, "output after shuffle: " + mArrayList);

关于java - 如何生成不重复的随机布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20938314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com