2017-03-19 1 views
0

私は数を減らして増やすボタンを使っていますが、16個の個別の数字が必要です。この数値を減らし、増やして計算するコードがありますが、数値をmethodResultに渡す必要があります。私はこれがprodutiveではないと思うので、パラメータごとにパラメータを渡すことはできません、そして、このアプリケーションがアンドロイドのために開発されていることを見て、処理を費やすでしょう。1つのメソッドに16個のパラメータを繰り返して渡す必要があります

public class TaxasFragment extends Fragment { 
    //Upward i have some variable declarations and etc etc... 
    //Decrease button function 
    int contador = 0; 
    while(contador < 16) { 
     buttonsDiminuir.get(contador).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       switch (view.getId()) { 
        case R.id.botao_diminuir: 
         if(valorExibido[0] > 0) { 
          valorExibido[0]--; 
          String textoExibido = "" + valorExibido[0]; 
          buttonsExibir.get(0).setText(textoExibido); 
         } 
         break; 
        case R.id.botao_diminuir2: 
         if(valorExibido[1] > 0) { 
          valorExibido[1]--; 
          String textoExibido2 = "" + valorExibido[1]; 
          buttonsExibir.get(1).setText(textoExibido2); 
         } 
         break; 
        case R.id.botao_diminuir3: 
         if(valorExibido[2] > 0) { 
          valorExibido[2]--; 
          String textoExibido3 = "" + valorExibido[2]; 
          buttonsExibir.get(2).setText(textoExibido3); 
         } 
         break; 
        case R.id.botao_diminuir4: 
         if(valorExibido[3] > 0) { 
          valorExibido[3]--; 
          String textoExibido4 = "" + valorExibido[3]; 
          buttonsExibir.get(3).setText(textoExibido4); 
         } 
         break; 
        case R.id.botao_diminuir5: 
         if(valorExibido[4] > 0) { 
          valorExibido[4]--; 
          String textoExibido5 = "" + valorExibido[4]; 
          buttonsExibir.get(4).setText(textoExibido5); 
         } 
         break; 
        case R.id.botao_diminuir6: 
         if(valorExibido[5] > 0) { 
          valorExibido[5]--; 
          String textoExibido6 = "" + valorExibido[5]; 
          buttonsExibir.get(5).setText(textoExibido6); 
         } 
         break; 
        case R.id.botao_diminuir7: 
         if(valorExibido[6] > 0) { 
          valorExibido[6]--; 
          String textoExibido7 = "" + valorExibido[6]; 
          buttonsExibir.get(6).setText(textoExibido7); 
         } 
         break; 
        case R.id.botao_diminuir8: 
         if(valorExibido[7] > 0) { 
          valorExibido[7]--; 
          String textoExibido8 = "" + valorExibido[7]; 
          buttonsExibir.get(7).setText(textoExibido8); 
         } 
         break; 
        case R.id.botao_diminuir9: 
         if(valorExibido[8] > 0) { 
          valorExibido[8]--; 
          String textoExibido9 = "" + valorExibido[8]; 
          buttonsExibir.get(8).setText(textoExibido9); 
         } 
         break; 
        case R.id.botao_diminuir10: 
         if(valorExibido[9] > 0) { 
          valorExibido[9]--; 
          String textoExibido10 = "" + valorExibido[9]; 
          buttonsExibir.get(9).setText(textoExibido10); 
         } 
         break; 
        case R.id.botao_diminuir11: 
         if(valorExibido[10] > 0) { 
          valorExibido[10]--; 
          String textoExibido11 = "" + valorExibido[10]; 
          buttonsExibir.get(10).setText(textoExibido11); 
         } 
         break; 
        case R.id.botao_diminuir12: 
         if(valorExibido[11] > 0) { 
          valorExibido[11]--; 
          String textoExibido12 = "" + valorExibido[11]; 
          buttonsExibir.get(11).setText(textoExibido12); 
         } 
         break; 
        case R.id.botao_diminuir13: 
         if(valorExibido[12] > 0) { 
          valorExibido[12]--; 
          String textoExibido13 = "" + valorExibido[12]; 
          buttonsExibir.get(12).setText(textoExibido13); 
         } 
         break; 
        case R.id.botao_diminuir14: 
         if(valorExibido[13] > 0) { 
          valorExibido[13]--; 
          String textoExibido14 = "" + valorExibido[13]; 
          buttonsExibir.get(13).setText(textoExibido14); 
         } 
         break; 
        case R.id.botao_diminuir15: 
         if(valorExibido[14] > 0) { 
          valorExibido[14]--; 
          String textoExibido15 = "" + valorExibido[14]; 
          buttonsExibir.get(14).setText(textoExibido15); 
         } 
         break; 
        case R.id.botao_diminuir16: 
         if(valorExibido[15] > 0) { 
          valorExibido[15]--; 
          String textoExibido16 = "" + valorExibido[15]; 
          buttonsExibir.get(15).setText(textoExibido16); 
         } 
         break; 
       } 
      } 
     }); 
     contador++; 
    } 

    //Increase button function 
    int contador2 = 0; 
    while(contador2 < 16) { 
     buttonsAumentar.get(contador2).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       switch (view.getId()) { 
        case R.id.botao_aumentar: 
         valorExibido[0]++; 
         String textoExibido = "" + valorExibido[0]; 
         buttonsExibir.get(0).setText(textoExibido); 
         break; 
        case R.id.botao_aumentar2: 
         valorExibido[1]++; 
         String textoExibido2 = "" + valorExibido[1]; 
         buttonsExibir.get(1).setText(textoExibido2); 
         break; 
        case R.id.botao_aumentar3: 
         valorExibido[2]++; 
         String textoExibido3 = "" + valorExibido[2]; 
         buttonsExibir.get(2).setText(textoExibido3); 
         break; 
        case R.id.botao_aumentar4: 
         valorExibido[3]++; 
         String textoExibido4 = "" + valorExibido[3]; 
         buttonsExibir.get(3).setText(textoExibido4); 
         break; 
        case R.id.botao_aumentar5: 
         valorExibido[4]++; 
         String textoExibido5 = "" + valorExibido[4]; 
         buttonsExibir.get(4).setText(textoExibido5); 
         break; 
        case R.id.botao_aumentar6: 
         valorExibido[5]++; 
         String textoExibido6 = "" + valorExibido[5]; 
         buttonsExibir.get(5).setText(textoExibido6); 
         break; 
        case R.id.botao_aumentar7: 
         valorExibido[6]++; 
         String textoExibido7 = "" + valorExibido[6]; 
         buttonsExibir.get(6).setText(textoExibido7); 
         break; 
        case R.id.botao_aumentar8: 
         valorExibido[7]++; 
         String textoExibido8 = "" + valorExibido[7]; 
         buttonsExibir.get(7).setText(textoExibido8); 
         break; 
        case R.id.botao_aumentar9: 
         valorExibido[8]++; 
         String textoExibido9 = "" + valorExibido[8]; 
         buttonsExibir.get(8).setText(textoExibido9); 
         break; 
        case R.id.botao_aumentar10: 
         valorExibido[9]++; 
         String textoExibido10 = "" + valorExibido[9]; 
         buttonsExibir.get(9).setText(textoExibido10); 
         break; 
        case R.id.botao_aumentar11: 
         valorExibido[10]++; 
         String textoExibido11 = "" + valorExibido[10]; 
         buttonsExibir.get(10).setText(textoExibido11); 
         break; 
        case R.id.botao_aumentar12: 
         valorExibido[11]++; 
         String textoExibido12 = "" + valorExibido[11]; 
         buttonsExibir.get(11).setText(textoExibido12); 
         break; 
        case R.id.botao_aumentar13: 
         valorExibido[12]++; 
         String textoExibido13 = "" + valorExibido[12]; 
         buttonsExibir.get(12).setText(textoExibido13); 
         break; 
        case R.id.botao_aumentar14: 
         valorExibido[13]++; 
         String textoExibido14 = "" + valorExibido[13]; 
         buttonsExibir.get(13).setText(textoExibido14); 
         break; 
        case R.id.botao_aumentar15: 
         valorExibido[14]++; 
         String textoExibido15 = "" + valorExibido[14]; 
         buttonsExibir.get(14).setText(textoExibido15); 
         break; 
        case R.id.botao_aumentar16: 
         valorExibido[15]++; 
         String textoExibido16 = "" + valorExibido[15]; 
         buttonsExibir.get(15).setText(textoExibido16); 
         break; 
       } 
      } 
     }); 
     contador2++; 
    } 
} 
public void methodResult() { 

     int totalPropriedadesExponenciais = valorBotao1 + valorBotao2 + valorBotao3 + valorBotao4 + valorBotao5 + valorBotao6 + valorBotao7 + valorBotao8 + valorBotao9 + valorBotao10 + valorBotao11 + valorBotao12; 

     int taxasTotaisSemPeso = valorBotao1*5 + valorBotao2*10 + valorBotao3*15 + valorBotao4*25 + valorBotao5*10 + valorBotao6*15 + valorBotao7*25 + valorBotao8*50 + valorBotao9*5 + valorBotao10*25 + valorBotao11*40 + valorBotao12*15; 

     int taxasTotaisExcessao = valorBotao13*5 + valorBotao14*10 + valorBotao15*15 + valorBotao16*25; 
} 
+0

あなたはゲッターとセッターを持つことになります16個の変数が含まれていますクラスを作成することができます。その後、そのクラスをmethodResultのパラメータとして渡し、ゲッターメソッドで16個の変数にアクセスします。 – altoids

+0

私はこれを試しましたが、パラメータがmethodResultに入ったときに値を失います。 –

+0

http://stackoverflow.com/questions/2432443/best-practice-for-passing-many-arguments-to-method – Shubham

答えて

0

あなたはswitch文を削除するようにコードをリファクタリングする必要があります

private static final List<Integer> AUMENTAR_RESOURCES = ImmutableList.of(
    R.id.botao_aumentar, 
    R.id.botao_aumentar2, 
    R.id.botao_aumentar3, 
    ... 
); 

private final View.OnClickListener aumentarListener = 
    new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      final int index = 
       AUMENTAR_RESOURCES.indexOf(view.getId()); 
      valorExibido[index]++; 
      String textoExibido = "" + valorExibido[index]; 
      buttonsExibir.get(index).setText(textoExibido); 
     } 
    }; 

private void hookupButtons() { 
    for (index = 0; index < AUMENTAR_RESOURCES.size(); index++) { 
     buttonsAumentar.get(index) 
      .setOnClickListener(aumentarListener); 
    } 
} 
+0

そして、switch文を削除した後、16ボタンの値を同時に呼び出して計算を実行するにはどうしたらいいですか? –

関連する問題