【问题标题】:Using my own class in App to store pairs在 App 中使用我自己的类来存储对
【发布时间】:2012-03-20 15:37:00
【问题描述】:

我为 12 个 ImageButtons 分配了它们自己的 ID,然后为 6 个随机图像中的每一个分配了一个。我想要 6 对 2。我创建了自己的类“Pairs”来存储它们,但它崩溃了 为了避免集群,我省略了一些初始化,但这是基本设置

class Pairs {

int first;
int second;

public void setFirst(int a){
    first = a;
}

public void setSecond(int a){
    second = a;
}

}

protected void onCreate(Bundle savedInstanceState){
    Boolean isShown[];
    Pairs imagePairs [] = new Pairs[6];
    gen = new Random();
    int randomAssign = 1;
    while(randomAssign < 13){
        b = gen.nextInt(12) + 1;
        while(isShown[b] == true){
            b = gen.nextInt(12) + 1;
        }

        if (randomAssign < 2){
            buttons[b].setImageResource(R.drawable.img01);
            imagePairs[0].setFirst(b);

        }
        else if (randomAssign <3){
            buttons[b].setImageResource(R.drawable.img01);
            imagePairs[0].setSecond(b);

        }
        else if (randomAssign < 4){
            buttons[b].setImageResource(R.drawable.img02);
            imagePairs[1].setFirst(b);

        }
        else if (randomAssign <5){
            buttons[b].setImageResource(R.drawable.img02);
            imagePairs[1].setSecond(b);
        }
        else if (randomAssign < 6){
            buttons[b].setImageResource(R.drawable.img03);
            imagePairs[2].setFirst(b); 
        }
        else if (randomAssign <7){
            buttons[b].setImageResource(R.drawable.img03);
            imagePairs[2].setSecond(b);
        }
        else if (randomAssign < 8){
            buttons[b].setImageResource(R.drawable.img04);
            imagePairs[3].setFirst(b); 
        }
        else if (randomAssign < 9){
            buttons[b].setImageResource(R.drawable.img04);
            imagePairs[3].setSecond(b);
        }
        else if (randomAssign < 10){
            buttons[b].setImageResource(R.drawable.img05);
            imagePairs[4].setFirst(b); 
        }
        else if (randomAssign < 11){
            buttons[b].setImageResource(R.drawable.img05);
            imagePairs[4].setSecond(b);
        }
        else if (randomAssign < 12){
            buttons[b].setImageResource(R.drawable.img06);
            imagePairs[5].setFirst(b); 
        }
        else if (randomAssign < 13){
            buttons[b].setImageResource(R.drawable.img06);
            imagePairs[5].setSecond(b);
        }

        isShown[b] = true;
        randomAssign++;
    }
}

【问题讨论】:

    标签: android arrays class imagebutton


    【解决方案1】:

    之间

    Pairs imagePairs [] = new Pairs[6];
    

    还有

    imagePairs[0].setFirst(b);
    

    你需要在某个地方初始化你的配对:

    imagePairs[0] = new Pairs();
    

    如果您不这样做,imagePairs[0] 将为 null,您将收到 NullPointerException... 显然,这同样适用于 imagePairs[1]、imagePairs[2] 等。

    编辑:这可以通过for循环来完成:

    for(int i=0; i<imagePairs.length; i++){
        imagePairs[i] = new Pairs();
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多