2016-09-22 2 views
-1

私のコードはこれを切り捨てます。私はAndroidでスポーツスコアリング(野球)アプリに取り組んでいます。私のコードは各ボタンのクリックに作用しますので、私のストライクボタンをクリックすると、XMLのストライクテキストビューに1が表示されます。2回目のクリック表示後2. 3回目のクリック後ストライクが0にリセットされ、私の問題は、チームのストライクが2で、チームのアウトが2の場合、次のボタンをクリックすると、xmlのテキストビューにアウトが表示されます。3.別のストライクをクリックすると、これは技術的には正しいのですが、2ストライクと2アウトの次のストライクボタンをクリックしてストライクとアウトをすべて0にリセットすることができます。どんな助けもありがたい。ありがとうございました。私はOnClickメソッドのifステートメントを使用するときにJavaのヘルプが必要です

// Find the Button that shows the increment strike button for team A. 
    final Button baseballAStrikePlus = (Button) findViewById(R.id.increment_a_strike); 
    // Set a click listener on that View 
    baseballAStrikePlus.setOnClickListener(new View.OnClickListener() { 
     // The code in this method will be executed when the category is clicked on. 
     @Override 
     public void onClick(View view) { 
      if (teamAOuts == 3) { 
       teamAOuts = 0; 
       outsForTeamA(teamAOuts); 
       return; 

      } else { 
       if (teamAStrikes == 2) { 
        teamAOuts = teamAOuts + 1; 
        outsForTeamA(teamAOuts); 
        teamAStrikes = 0; 
        strikesForTeamA(teamAStrikes); 
        return; 
       } 
      } 
      teamAStrikes = teamAStrikes + 1; 
      strikesForTeamA(teamAStrikes); 
     } 
    }); 
+0

もっと説明してみると、これは本当に面倒ですし、明快にするためにスイッチや入れ子を使うべきです –

+0

初めてスタック交換を使用しています。謝罪いたします。 –

+0

謝罪することは何もない、それはちょうど助言だった。冷やす –

答えて

0

あなたが使用することなどが挙げられる場合には二つの条件を検証するために:

if (teamAStrikes == 2 && teamAOuts == 2) { 
       teamAOuts = teamAOuts + 1; 
       outsForTeamA(teamAOuts); 
       teamAStrikes = 0; 
       teamAStrikes = 0; 
       strikesForTeamA(teamAStrikes); 
       return; 
      } 
0

あなたは境界条件が欠落しています。あなたが3になるようにしてteamAOutsteamAStrikesの両方が2のとき、[次へ]ボタンをクリックの上、[次へ]ボタンをクリックの上、それは0

あなたが必要なもの

作っているteamAOutsを許可している。このteamAOuts == 3

、両方が0

になるので、この

この

if (teamAOuts == 3) { 
     teamAOuts = 0; 
     outsForTeamA(teamAOuts); 
     return; 
    } 

を置き換えます

関連する問題