我有一个游戏,并开始int值分= 100;并且每次点击一个按钮后游戏进度会降低,直到游戏结束。我使用开关在onClick方法中扣除了点数。游戏结束后,我再次加载游戏方法进行第二轮,这是我的问题。如果我将这个int变量作为一个实例变量,它将在第一轮结束后保留它的值,并且我需要从100开始重新计算。如果我将它声明为局部变量,那么我的方法使用intent调用另一个活动并发送最终点值没有看到这个变量。如何解决这个问题?如何声明int变量对我的所有方法都可见?
因此,我宣布了一些变量:
int numberPointsGame = 100;
static int numberPointsTotal;
现在,在我的onClick方法我设置一些文字和副轨道的点:
public void onClick(View v) {
switch(v.getId()){
case R.id.bA1:
numberPointsGame = numberPointsGame - 5;
a1.setText(mA1);
break;
case R.id.bA2:
numberPointsGame = numberPointsGame - 5;
a2.setText(mA2);
break;
而现在,如果用户输入正确的答案,我将这些点放在另一个实例变量中,然后将其发送到另一个弹出式活动,然后重新加载第一个活动并再次执行一次。
if (ukucanRezultatStrK.equals(konacanNormalized)){
konacnoResenje.setText(mKonacno);
Intent i = new Intent(Asocijacije.this, Popup_asocijacije.class);
i.putExtra("brojPoenaPrimljeno", numberPointsGame);
startActivity(i);
mHandler.postDelayed(mLaunchTask,3700);
numberPointsTotal = numberPointsTotal + numberPointsGame;
setResults();
}else{
Toast.makeText(Asocijacije.this, "Wrong answer!", Toast.LENGTH_SHORT).show();
}
其次重装后,当比赛结束,我去主菜单,设定最终结果(共两场比赛的结果)的按钮。我总是得到0.这是主要问题。
Intent i = new Intent(getApplicationContext(), Izbor.class);
i.putExtra("numberPointsGame", numberPointsTotal);
startActivity(i);
和我的主菜单类:
int numberPointsGame;
int score = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.izbor);
addListenerOnButton();
Bundle extras = getIntent().getExtras();
if(extras !=null) {
score = extras.getInt("ukupnoAsocijacije", 0);
}
}
private void addListenerOnButton() {
poeniAso.setText("" + score);
}
请显示相关代码。 – 2013-04-05 13:56:39
当游戏重新加载时,为什么不影响100到你的变量? – VinceFR 2013-04-05 13:56:50
将其设置回100有什么问题? – Simon 2013-04-05 13:56:58