以下代码通过重复相同的元素运行, 我想要的是随机发送而不重复。
public class khmerAlphabetExercise extends Activity {
AlphabetData data;
MediaPlayer mp;
int dataType;
int dataKey;
Random random;
private ImageView iv1, iv2, iv3,iv4;
private ImageView[] imgs = { iv1, iv3, iv3,iv4 };
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_khmer_exercise);
int[] imageViews={R.id.ex_con1,R.id.ex_con2,R.id.ex_con3,R.id.ex_con4};
//int images[]={R.drawable.con_ex_01,R.drawable.con_ex_02,R.drawable.con_ex_03,R.drawable.con_ex_04,R.drawable.con_ex_05,R.drawable.con_ex_06,R.drawable.con_ex_07,R.drawable.con_ex_08,R.drawable.con_ex_09,R.drawable.con_ex_10};
int[] images={data.getImageId()};
random = new Random(System.currentTimeMillis());
for(int v : imageViews)
{
ImageView iv = (ImageView)findViewById(v);
iv.setImageResource(images[random.nextInt(images.length)]);
}
}
}
答案 0 :(得分:0)
您可以保留要选择的图像的计数器。每次你选择一个,你都会在原始数组中交换它,最后一个未被选中。
因此,例如,您有一个数组{0,1,2,3,4}。未选中的长度为5,我们称之为 l
答案 1 :(得分:0)
您可以使用Collections.shuffle
Collections.shuffle(Arrays.asList(images));
然后您可以使用简单的for循环逐个添加此图像,而无需随机化位置。在您的示例中,BTW只包含一个元素..