作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我是一名优秀的程序员,十分优秀!