ゲームがあり、int 値ポイント = 100 を開始します。ゲームが進行すると、ボタンをクリックするたびに値が減少し、ゲームが終了するまで続きます。スイッチを使用して onClick メソッドでポイントをサブトラックします。ゲームが終了した後、2 番目のラウンドのためにもう一度ゲーム メソッドをリロードします。これが私の問題です。その int 変数をインスタンス変数にすると、最初のラウンドが終了した後もその値が保持され、100 からやり直す必要があります。それをローカル変数として宣言すると、インテントを使用して別のアクティビティを呼び出し、最終ポイント値を送信するメソッドがこの変数は表示されません。これを解決するには?
したがって、いくつかの変数を宣言します。
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();
}
2 回目のリロード後、ゲームが終了したら、メイン メニューに移動し、最終結果 (2 つのゲーム結果の合計) をボタンに設定します。私は常に 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);
}