1
我写了一个程序,计算用户输入的4个输入值的总和。Android如何为计算总和的程序设置最大结果限制?
我想限制结果最大值为6(任何结果> 6返回值为“6”)。
例如,如果4个数字的总和是10,则它会自动被改变为6
Java代码是:
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));
}
}
这不是[mcve](https://stackoverflow.com/help/mcve)。你的问题只是关于整数的总和。这与Android无关。 –
您可以执行类似if(sum)> = 6将值6分配给结果字段 – Lokesh
两个建议: 1:使用TextWatcher()的单个实例并将其传递给每个addTextChangeListener()调用。 2:使用函数来处理从EditText对象获取数字的逻辑。例如。 'int getNumberForInput(EditText input)' – calebbrown