私は複数のifを使用して、スピナーの現在選択されている値に応じてプログラムを実行させていますが、もっとクリーンな方法があるとは思えません。助言がありますか?複数のif文を使用していますが、この例では悪い練習をしていますか?
if(spinnerinput.equals(spinnerinput2)) {
output.setText(input.getText());
}
else if(spinnerinput.equals("Base 2") && spinnerinput2.equals("Base 10")) {
String regex = "[0-1]+";
if (input.getText().toString().matches(regex)) {
output.setText(binaryToDecimal(input.getText().toString()));
} else {
Context context = getApplicationContext();
CharSequence text = "Invalid characters for a binary number!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
else if(spinnerinput.equals("Base 10") && spinnerinput2.equals("Base 2")) {
String regex = "[0-9]+";
if(input.getText().toString().matches(regex)) {
output.setText(decimalToBinary(input.getText().toString()));
} else {
Context context = getApplicationContext();
CharSequence text = "Invalid characters for a decimal number!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
}
}
'if' /' else if'部分は問題ではありませんが、2番目の2つのブロックの内容をパラメータ化された再利用可能なメソッドに分解してください。 –