返回到第一个循环

Posted

技术标签:

【中文标题】返回到第一个循环【英文标题】:Go back to first of loop 【发布时间】:2017-07-12 19:07:02 【问题描述】:

我想在同一个活动(但分开)中创建一个“20 个随机图像 + 每个图像下方 4 个按钮”的活动。 因此,我使用“for 循环”来执行此操作。

现在,当用户单击其中一个按钮时,我想回到循环的开头,然后创建一个图像和另一个随机按钮应用程序。

请指导我解决此问题。

谢谢。


代码:

注意:这段代码不能正常工作,因为下面的语句不能工作:

if (clk==true) continue;

public class testActivity extends Activity 
    int falseb;
boolean clk=false;
    String truename;
    final Random rnd = new Random();
   // public String[] picture="banana","black","camel","cherry";

   String [] picture = new String [] "camel1","cat1","monkey","dogs" ;

            List<String> List = new ArrayList<String>(Arrays.asList(picture));
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);
        final ImageView img = (ImageView) findViewById(R.id.imgRandom);
        final Button b1 = (Button) findViewById(R.id.b1);
        final Button b2 = (Button) findViewById(R.id.b2);
        final Button b3 = (Button) findViewById(R.id.b3);
        final Button b4 = (Button) findViewById(R.id.b4);

        Typeface font = Typeface.createFromAsset(getAssets(), "koodk.ttf");
        b1.setTypeface(font);
        b2.setTypeface(font);
        b3.setTypeface(font);
        b4.setTypeface(font);
       for (int num=1;num<20;num++) 
           //set Image and 4 options(as Button)by random

           b1.setOnClickListener(new View.OnClickListener() 
                @Override
                public void onClick(View view) 
                    clk=true;

                    if (((Button) view).getText()==truename)
                        ((Button) view).setBackgroundResource(R.mipmap.true1);
                        List.remove(rp);

                    else 
                        ((Button) view).setBackgroundResource(R.mipmap.fls1);
                        List.remove(rp);clk=true;
                    

                

            );


          b2.setOnClickListener(new View.OnClickListener() 
                @Override
                public void onClick(View view) clk=true;
                    if (((Button) view).getText()==truename)
                        ((Button) view).setBackgroundResource(R.mipmap.true1);
                        List.remove(rp);

                    else 
                        ((Button) view).setBackgroundResource(R.mipmap.fls1);
                        List.remove(rp);
                    
                

            );
         if (clk==true) continue;
            b3.setOnClickListener(new View.OnClickListener() 
                @Override
                public void onClick(View view) clk=true;
                    if (((Button) view).getText()==truename)
                        ((Button) view).setBackgroundResource(R.mipmap.true1);
                        List.remove(rp);
                    else 
                        ((Button) view).setBackgroundResource(R.mipmap.fls1);
                        List.remove(rp);
                    
                

            );
          if (clk==true) continue;
           b4.setOnClickListener(new View.OnClickListener() 
                @Override
                public void onClick(View view) clk=true;
                    if (((Button) view).getText()==truename)
                        ((Button) view).setBackgroundResource(R.mipmap.true1);
                        List.remove(rp);
                    else 
                        ((Button) view).setBackgroundResource(R.mipmap.fls1);
                        List.remove(rp);
                    
                

            );
           if (clk==true) continue;

        



   



   protected final static int getResourceID
            (final String resName, final String resType, final Context ctx)
    
        final int ResourceID =
                ctx.getResources().getIdentifier(resName, resType,
                        ctx.getApplicationInfo().packageName);
        if (ResourceID == 0)
        
            throw new IllegalArgumentException
                    (
                            "No resource string found with name " + resName
                    );
        
        else
        
            return ResourceID;
        
    


【问题讨论】:

分享你的代码 好的@VIX,我编辑帖子并分享我的代码。谢谢。 【参考方案1】:
Try to 

    for(int i = 0; i < 20; i++)
        if(response == false)
            //regenerate your list here
            i = 0;
        
    

【讨论】:

int numberToReach = 20; for(int i = 0; i

以上是关于返回到第一个循环的主要内容,如果未能解决你的问题,请参考以下文章

如何有返回按钮才能返回到第一个 ViewController?

译并发模型和事件循环

ios 我的应用程序如何返回到第一个屏幕?

UITableViewController 在关闭第二个 ViewController 后返回到第一个单元格

如何强制返回按钮转到第一个视图控制器(swift)

输出文件的间距有问题 - 使用 itertools 产品循环使用来自两个不同文本文件的变量输出到第三个