您好我的代码有问题 我在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;
}
}
答案 0 :(得分:0)
方法“Controllo1()”仅在创建活动时调用一次。
因此,当您单击true或false时(因为似乎OnClickListeners都将“round”设置为“2”)没有任何反应。按钮上的OnClickListener保持不变,因此该轮将始终为2。
如果要保持此代码不变,请从OnClickListener调用Controllo1()。或者从onClick方法本身设置新的OnClickListener,但这会使您的代码不可读。