Android 如何用此代码重复随机位置和图像的处理
我想做的是,每次我点击文本视图,星星都会得到它们在我的布局中设置的随机位置 它在第一次单击后工作,但在下次单击textview时缺少一些星星Android 如何用此代码重复随机位置和图像的处理,android,random,Android,Random,我想做的是,每次我点击文本视图,星星都会得到它们在我的布局中设置的随机位置 它在第一次单击后工作,但在下次单击textview时缺少一些星星 List<Integer> imageViews = new ArrayList<Integer>(); List<Integer> images = new ArrayList<Integer>(); public void clearimg() { str1.setImageRe
List<Integer> imageViews = new ArrayList<Integer>();
List<Integer> images = new ArrayList<Integer>();
public void clearimg()
{
str1.setImageResource(android.R.color.transparent);
str2.setImageResource(android.R.color.transparent);
str3.setImageResource(android.R.color.transparent);
str4.setImageResource(android.R.color.transparent);
str5.setImageResource(android.R.color.transparent);
str6.setImageResource(android.R.color.transparent);
str7.setImageResource(android.R.color.transparent);
str8.setImageResource(android.R.color.transparent);
str9.setImageResource(android.R.color.transparent);
str10.setImageResource(android.R.color.transparent);
}
public void viewadd()
{
imageViews.add(R.id.star1);
imageViews.add(R.id.star2);
imageViews.add(R.id.star3);
imageViews.add(R.id.star4);
imageViews.add(R.id.star5);
imageViews.add(R.id.star6);
imageViews.add(R.id.star7);
imageViews.add(R.id.star8);
imageViews.add(R.id.star9);
imageViews.add(R.id.star10);
}
public void imageadd()
{
images.add(R.drawable.star1);
images.add(R.drawable.star2);
images.add(R.drawable.star3);
images.add(R.drawable.star4);
images.add(R.drawable.star5);
images.add(R.drawable.star6);
images.add(R.drawable.star7);
images.add(R.drawable.star8);
images.add(R.drawable.star9);
images.add(R.drawable.star10);
}
View.OnClickListener tapHandler = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
clearimg();
imageadd();
viewadd();
Random rng = new Random();
List<Integer> generated = new ArrayList<Integer>();
for (int i = 0; i < 10; i++)
{
while(true)
{
Integer next = rng.nextInt(imageViews.size()) ;
if (!generated.contains(next))
{
generated.add(next);
ImageView iv = (ImageView)findViewById(imageViews.get(next));
iv.setImageResource(images.get(next));
images.remove(next);
imageViews.remove(next);
break;
}
}
}
}
};
List imageview=new ArrayList();
列表图像=新的ArrayList();
公共无效清除()
{
str1.setImageResource(android.R.color.transparent);
setImageResource(android.R.color.transparent);
str3.setImageResource(android.R.color.transparent);
str4.setImageResource(android.R.color.transparent);
setImageResource(android.R.color.transparent);
str6.setImageResource(android.R.color.transparent);
str7.setImageResource(android.R.color.transparent);
str8.setImageResource(android.R.color.transparent);
str9.setImageResource(android.R.color.transparent);
str10.setImageResource(android.R.color.transparent);
}
public void viewadd()
{
imageViews.add(R.id.star1);
imageViews.add(R.id.star2);
imageViews.add(R.id.star3);
imageViews.add(R.id.star4);
imageViews.add(R.id.star5);
imageViews.add(R.id.star6);
imageViews.add(R.id.star7);
imageViews.add(R.id.star8);
imageViews.add(R.id.star9);
imageViews.add(R.id.star10);
}
public void imageadd()
{
添加(R.drawable.star1);
添加(R.drawable.star2);
添加(R.drawable.star3);
图像。添加(R.drawable.star4);
图像。添加(R.drawable.star5);
图像。添加(R.drawable.star6);
添加(R.drawable.star7);
添加(R.drawable.star8);
添加(R.drawable.star9);
添加(R.drawable.star10);
}
View.OnClickListener tapHandler=新视图。OnClickListener()
{
@凌驾
公共void onClick(视图v)
{
//TODO自动生成的方法存根
clearimg();
imageadd();
视图添加();
随机rng=新随机();
生成的列表=新的ArrayList();
对于(int i=0;i<10;i++)
{
while(true)
{
整数next=rng.nextInt(imageViews.size());
如果(!generated.contains(下一步))
{
生成、添加(下一步);
ImageView iv=(ImageView)findViewById(ImageView.get(next));
iv.setImageResource(images.get(next));
图像。删除(下一步);
imageview.remove(下一步);
打破
}
}
}
}
};
将图像设置为ImageView
后,从列表中删除第i项。不再重复。;)你能解释清楚一点吗?我总算明白你的意思了。。不知怎的,没有。请看我的答案以获得进一步帮助。我正要给出答案。有一个弹出窗口显示“1个新答案”,并看到了我的解决方案;)+等一下。我再试一次。
List<Integer> views = new ArrayList<Integer>();
List<Integer> images = new ArrayList<Integer>();
//populate your lists
Integer next = rng.nextInt(views.size()) ;
if (!generated.contains(next))
{
generated.add(next);
ImageView iv = (ImageView)findViewById(views.get(next));
iv.setImageResource(images.get(next));
images.remove(next);
views.remove(next);
break;
}