Java 如何正确循环浏览图像按钮?

Java 如何正确循环浏览图像按钮?,java,android,for-loop,imagebutton,Java,Android,For Loop,Imagebutton,嘿,伙计们,我有3个imageButton图标/标签要设置。所以我做了一个循环,并通过它们。现在,用户可以按多个标签(如食品标签、零售标签、住房标签等),这将添加到全局ArrayList中。现在,如果用户只按了1个标记,并且有三个imagebutton需要设置,我想将第一个imagebutton设置为他们拾取的唯一标记,并将其余的设置为白色空白图像,但我不断得到以下错误: java.lang.IndexOutOfBoundsException:索引1无效,大小为1 这是我的循环,我不知道我做错了

嘿,伙计们,我有3个imageButton图标/标签要设置。所以我做了一个循环,并通过它们。现在,用户可以按多个标签(如食品标签、零售标签、住房标签等),这将添加到全局ArrayList中。现在,如果用户只按了1个标记,并且有三个imagebutton需要设置,我想将第一个imagebutton设置为他们拾取的唯一标记,并将其余的设置为白色空白图像,但我不断得到以下错误:

java.lang.IndexOutOfBoundsException:索引1无效,大小为1

这是我的循环,我不知道我做错了什么

 private void getIcons()
    {
        iconArray.add(icon1);
        iconArray.add(icon2);
        iconArray.add(icon3);
        for(int i = 0; i < iconArray.size(); i++)
        {
            ImageView button= iconArray.get(i);
            if(Global_Class.getInstance().getValue().tags.size() == 1)
            {
                if(Global_Class.getInstance().getValue().tags.get(i) == null)//Here is where Its giving me an ERROR!!!!!
                {
                    button.setImageResource(R.drawable.icon_blank);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "food")
                {
                    button.setImageResource(R.drawable.white_small_icon_food);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "bar")
                {
                    button.setImageResource(R.drawable.white_small_icon_bar);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "club")
                {
                    button.setImageResource(R.drawable.white_small_icon_club1);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "housing")
                {
                    button.setImageResource(R.drawable.white_small_icon_housing);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "sports")
                {
                    button.setImageResource(R.drawable.white_small_icon_sports);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "retail")
                {
                    button.setImageResource(R.drawable.white_small_icon_retail);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "outdoors")
                {
                    button.setImageResource(R.drawable.white_small_icon_outdoors1);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "education")
                {
                    button.setImageResource(R.drawable.white_icon_education);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "landmark")
                {
                    button.setImageResource(R.drawable.white_small_icon_landmark);
                }
            }
            else if(Global_Class.getInstance().getValue().tags.size() == 2)
            {
                if(Global_Class.getInstance().getValue().tags.get(i) == null)
                {
                    button.setImageResource(R.drawable.icon_blank);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "food")
                {
                    button.setImageResource(R.drawable.white_small_icon_food);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "bar")
                {
                    button.setImageResource(R.drawable.white_small_icon_bar);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "club")
                {
                    button.setImageResource(R.drawable.white_small_icon_club1);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "housing")
                {
                    button.setImageResource(R.drawable.white_small_icon_housing);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "sports")
                {
                    button.setImageResource(R.drawable.white_small_icon_sports);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "retail")
                {
                    button.setImageResource(R.drawable.white_small_icon_retail);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "outdoors")
                {
                    button.setImageResource(R.drawable.white_small_icon_outdoors1);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "education")
                {
                    button.setImageResource(R.drawable.white_icon_education);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "landmark")
                {
                    button.setImageResource(R.drawable.white_small_icon_landmark);
                }
                else
                {
                    //
                }

            }
            else
            {
                if(Global_Class.getInstance().getValue().tags.get(i) == "food")
                {
                    button.setImageResource(R.drawable.white_small_icon_food);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "bar")
                {
                    button.setImageResource(R.drawable.white_small_icon_bar);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "club")
                {
                    button.setImageResource(R.drawable.white_small_icon_club1);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "housing")
                {
                    button.setImageResource(R.drawable.white_small_icon_housing);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "sports")
                {
                    button.setImageResource(R.drawable.white_small_icon_sports);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "retail")
                {
                    button.setImageResource(R.drawable.white_small_icon_retail);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "outdoors")
                {
                    button.setImageResource(R.drawable.white_small_icon_outdoors1);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "education")
                {
                    button.setImageResource(R.drawable.white_icon_education);
                }
                else if(Global_Class.getInstance().getValue().tags.get(i) == "landmark")
                {
                    button.setImageResource(R.drawable.white_small_icon_landmark);
                }
                else
                {
                    //
                }
            }


        }
    }

我想只有一个项目可用,所以请尝试
I-1
而不是
I
向我们显示全局类和标记。而且==不是Java中比较字符串的方式。例如,您需要使用.equals(“食物”)。我也看到了很多重复的代码,这从来都不是一件好事。@WalterM我修复了.equals(“食物”)只是忘了添加它,我更新了上面的帖子。
public class GlobalVariables
{
    public ArrayList<String> tags = new ArrayList<>();
}
 public void onClick(View v)
    {
        switch (v.getId())
        {
            case R.id.imageButton:
                if(food_pressed)
                {
                    ImageButton food_button = (ImageButton) findViewById(R.id.imageButton);
                    food_button.setImageResource(R.drawable.pressed_food);
                    tags.add("food");
                    food_pressed = false;
                    break;
                }
                else
                {
                    ImageButton food_button = (ImageButton) findViewById(R.id.imageButton);
                    food_button.setImageResource(R.drawable.icon_food);
                    tags.remove("food");
                    food_pressed = true;
                    break;
                }

        case R.id.imageButton9:
            ImageButton done_button = (ImageButton) findViewById(R.id.imageButton9);
            done_button.setImageResource(R.drawable.pressed_done);
            Global_Class.getInstance().getValue().tags = tags;
            //Toast.makeText(getApplicationContext(),Global_Class.getInstance().getValue().tags.toString(),Toast.LENGTH_SHORT).show();
            startActivity(toDescription);
            break;

etc...
}