数组没有得到值

时间:2012-04-19 17:42:48

标签: android

我一直致力于这个yahtzee项目并遇到了一个问题。 dice_number数组似乎没有获得随机生成的值。 oneScore TextView始终显示“ - ”。我正在发布我的代码。提前感谢您提供的任何帮助。此外,如果您需要查看代码,请告诉我。

 switch (v.getId()) {
       case R.id.rollBtn:
           for(i = 0; i < 5; i++){
               randnum = random.nextInt(5);
               if(i == 0){
                   images[i].setImageResource(image_array[randnum]);
                   dice_number[i] = randnum;
               }
               else if(i == 1){
                   images[i].setImageResource(image_array[randnum]);
                   dice_number[i] = randnum;
               }
               else if(i == 2){
                   images[i].setImageResource(image_array[randnum]);
                   dice_number[i] = randnum;
               }
               else if(i == 3){
                   images[i].setImageResource(image_array[randnum]);
                   dice_number[i] = randnum;
               }
               else if(i == 4){
                   images[i].setImageResource(image_array[randnum]);
                   dice_number[i] = randnum;
               }
               else if(i == 5){
                   images[i].setImageResource(image_array[randnum]);
                   dice_number[i] = randnum;
               }
               }
           break;
       case R.id.onesBtn:
           for (i = 0; i < 5; i++)
           {
               if (dice_number[i] == 1) {
                   dice_count[0] += 1;
                   oneScore.setText(Integer.toString(dice_count[0]));
               }
                   else 
                       oneScore.setText("--");
           }

2 个答案:

答案 0 :(得分:1)

第二个for循环重新设置每个数字的文本。所以如果你有一个数组

dice_number = {3, 2, 1, 1, 4}

TextView将设置为--,然后设置为--,然后设置为1(如果dice_count[0]为0),则设置为2,然后--,所以你会看到dice_number[4]的结果,这是最后一个--

您需要构造一个字符串或使用多个TextViews来查看整个数组,而不仅仅是最后一个元素。

此外,第一个for循环中的if语句在我所知道的范围内没有做任何事情。

答案 1 :(得分:1)

不是答案,只是建议的重构:

case R.id.rollBtn:
           for(i = 0; i < 5; i++){
               randnum = random.nextInt(5);
               images[i].setImageResource(image_array[randnum]);
               dice_number[i] = randnum; 
             }
           break;

事实上,永远不会达到if(i == 5) {..}所说的代码段,因为i的值始终为0,1,2,3或4。