Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何用此代码重复随机位置和图像的处理_Android_Random - Fatal编程技术网

Android 如何用此代码重复随机位置和图像的处理

Android 如何用此代码重复随机位置和图像的处理,android,random,Android,Random,我想做的是,每次我点击文本视图,星星都会得到它们在我的布局中设置的随机位置 它在第一次单击后工作,但在下次单击textview时缺少一些星星 List<Integer> imageViews = new ArrayList<Integer>(); List<Integer> images = new ArrayList<Integer>(); public void clearimg() { str1.setImageRe

我想做的是,每次我点击文本视图,星星都会得到它们在我的布局中设置的随机位置

它在第一次单击后工作,但在下次单击textview时缺少一些星星

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;
 }