我有一個遊戲,並開始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