Android变量不会增加

时间:2015-01-02 17:45:54

标签: android

您好我的代码有问题 我在andorid上做了一个真假游戏 问题是这实际上是游戏向前2轮因为变量(int round)没有增加 变量的值总是2,然后永远不会进入第三个问题

public class Livello extends Activity {
int livello;
int punteggio;
Verifica verifico = new Verifica();
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_livello);
    Intent intent =getIntent();
    String pkg=getPackageName();
    livello =intent.getIntExtra(pkg+".myInt",-1);
    if(livello==1) {
        Start1();
    }
}


  public void Start1(){
   verifico.question = (TextView) findViewById(R.id.domande);
   verifico.vero =(Button)findViewById(R.id.vero);
   verifico.falso =(Button)findViewById(R.id.falso);
   punteggio= verifico.punteggio;
   verifico.Controllo1();
 }

}

verifica.class

public class Verifica extends Activity{
  Button vero;
  Button falso;
  TextView question;
  int punteggio;
  int round;
  InizioRound inizioround = new InizioRound();

public void Controllo1(){
inizioround.question=question;
round=1;
round = inizioround.livello1(1);
vero.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        punteggio++;
        round = inizioround.livello1(2);
    }
});
falso.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        round = inizioround.livello1(2);
    }
});
if(round == 2){

    vero.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            punteggio++;
            round = inizioround.livello1(3);
            inizioround.livello1(3);
            Log.e("vaa", "round=" + round);
        }
    });
}  else if(round == 3){
    round = inizioround.livello1(3);
    falso.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            punteggio++;round = inizioround.livello1(4);
        }
    });
} else if(round == 4){
    falso.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            punteggio++;round = inizioround.livello1(5);
        }
    });
} else if(round == 5){
    round = inizioround.livello1(5);
    falso.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            punteggio++;round = inizioround.livello1(5);
        }
    });
   }
  }
}

inizioround.class

public class InizioRound extends Activity{
TextView question;
public int livello1(int round){
    if(round == 1){
        question.setText(R.string.dl1);
        round=1;
    } else if(round == 2){
        question.setText(R.string.dl2);
        round=2;
    } else if(round == 3){
        question.setText(R.string.dl3);
        round=3;
    } else if(round == 4){
        question.setText(R.string.dl4);
        round=4;
    } else if(round == 5){
        question.setText(R.string.dl5);
        round=5;
    }
    return round;
 }
}

1 个答案:

答案 0 :(得分:0)

方法“Controllo1()”仅在创建活动时调用一次。

因此,当您单击true或false时(因为似乎OnClickListeners都将“round”设置为“2”)没有任何反应。按钮上的OnClickListener保持不变,因此该轮将始终为2。

如果要保持此代码不变,请从OnClickListener调用Controllo1()。或者从onClick方法本身设置新的OnClickListener,但这会使您的代码不可读。