2017-10-12 11 views
1

私は、ユーザーが入力した4つの入力値の合計を計算するプログラムを作成しました。Android数の合計を計算するプログラムの結果に最大限の制限を設定するにはどうすればよいですか?

結果を最大値6に制限したい(6以上の結果があれば "6"の値を返す)。例えば

4数の和が、それが自動的に6

Javaコードに変更され10である場合には、次のとおり

EditText editText3; 
EditText editText4; 
EditText editText6; 
EditText editText8; 
TextView textViewResult; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.calculator); 

    editText3 = (EditText) findViewById(R.id.editText3); 
    editText4 = (EditText) findViewById(R.id.editText4); 
    editText6 = (EditText) findViewById(R.id.editText6); 
    editText8 = (EditText) findViewById(R.id.editText8); 
    textViewResult = (TextView) findViewById(R.id.textViewResult); 

    editText3.addTextChangedListener(new TextWatcher() { 

     public void beforeTextChanged(CharSequence s, int start, int count, 
             int after) { 
      // TODO Auto-generated method stub 
     } 

     public void onTextChanged(CharSequence s, int start, int before, 
            int count) { 
      textViewResult.setText(addNumbers()); 
     } 

     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 
     } 
    }); 

    editText4.addTextChangedListener(new TextWatcher() { 

     public void beforeTextChanged(CharSequence s, int start, int count, 
             int after) { 
      // TODO Auto-generated method stub 

     } 

     public void onTextChanged(CharSequence s, int start, int before, 
            int count) { 
      textViewResult.setText(addNumbers()); 

     } 

     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 

    editText6.addTextChangedListener(new TextWatcher() { 

     public void beforeTextChanged(CharSequence s, int start, int count, 
             int after) { 
      // TODO Auto-generated method stub 

     } 

     public void onTextChanged(CharSequence s, int start, int before, 
            int count) { 
      textViewResult.setText(addNumbers()); 

     } 

     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 

    editText8.addTextChangedListener(new TextWatcher() { 

     public void beforeTextChanged(CharSequence s, int start, int count, 
             int after) { 
      // TODO Auto-generated method stub 

     } 

     public void onTextChanged(CharSequence s, int start, int before, 
            int count) { 
      textViewResult.setText(addNumbers()); 

     } 

     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 
} 

private String addNumbers() { 
    int number1; 
    int number2; 
    int number3; 
    int number4; 
    if(editText3.getText().toString() != "" && editText3.getText().length() > 0) { 
     number1 = Integer.parseInt(editText3.getText().toString()); 
    } else { 
     number1 = 0; 
    } 
    if(editText4.getText().toString() != "" && editText4.getText().length() > 0) { 
     number2 = Integer.parseInt(editText4.getText().toString()); 
    } else { 
     number2 = 0; 
    } 
    if(editText6.getText().toString() != "" && editText6.getText().length() > 0) { 
     number3 = Integer.parseInt(editText6.getText().toString()); 
    } else { 
     number3 = 0; 
    } 
    if(editText8.getText().toString() != "" && editText8.getText().length() > 0) { 
     number4 = Integer.parseInt(editText8.getText().toString()); 
    } else { 
     number4 = 0; 
    } 

    return Integer.toString((number1*2) + (number2*4) + (number3*2) + (number4*2)); 

} 
} 
+1

これは[mcve](https://stackoverflow.com/help/mcve)ではありません。質問は整数の合計についてのみです。これはAndroidとは関係ありません。 –

+0

if(sum)> = 6のようにして、結果フィールドに値6を割り当てます – Lokesh

+0

2つの提案: 1: 'TextWatcher()'の1つのインスタンスを使用して、それぞれの 'addTextChangeListener()'呼び出しに渡します。 2:関数を使って、 'EditText'オブジェクトから数値を取得するためのロジックを処理します。例えば。 'int getNumberForInput(EditText input)' – calebbrown

答えて

1

変化: "return Integer.toString((number1*2) + (number2*4) + (number3*2) + (number4*2));" これに:

int sum = (number1*2) + (number2*4) + (number3*2) + (number4*2); 
if(sum>6) sum = 6; 
return sum+""; 
+0

ありがとうございました! –

関連する問題