1
빙고 게임을 만들고 있습니다. 5x5 그리드의 이미지 버튼이 있으며 각 이미지 뷰에는 자체 텍스트 뷰가 있습니다. 앱을 시작하거나 재설정 할 때 각 텍스트 뷰에 게임 중에 두 번 표시되는 문자열이 하나도없는 임의의 문자열을 표시해야합니다.Android 무작위 반복 문자열
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="tile_text">
<item>String 1</item>
<item>String 2</item>
<item>String 3</item>
...all the way to String 127
</string-array>
</resources>
그리고 각 텍스트 뷰에서 임의의 문자열 표시 :
public String[] myString;
Resources res = getResources();
myString = res.getStringArray(R.array.tile_text);
Random random = new Random(System.currentTimeMillis());
int[] textViews = {
//I have all my textviews added to this array
};
for(int v : textViews) {
TextView tv = (TextView)findViewById(v);
tv.setText(myString[random.nextInt(myString.length)]);
}
아니라 위의 작품을하지만, 심지어 200 개 문자열 저는 현재 127 개 항목, 자원 배열의 문자열을 배열에서 선택할 수 있지만 일부 항목은 여전히 두 번 나타납니다. 배열을 섞어서 하나의 게임에 대해 동일한 문자열을 두 번 선택하지 않을 수있는 방법이 있습니까? 나는 검색을했고 무작위 문자열에 대한 정보를 찾았지만 반복되지 않는 임의 문자열에 대해서는 알지 못한다. 그래서 이것이 중복 된 질문이라면 사과한다.
은 내가 찾던 정확히 무엇을, 감사합니다! for 루프의 외부에 이미 alreadyUsed.clear()를 추가 했으므로 모든 새로운 문자열을 다시 선택할 수 있지만 각 문자열에 동일한 문자열을 두 번 이상 추가하지는 않습니다. – heavy5rescue