public class MainActivity extends AppCompatActivity {
private DecimalFormat decimalFormat = new DecimalFormat("#,###");
private EditText number1, number2, number3;
private TextView result;
private String rs = "";
private String rs2 = "";
private String rs3 = "";
private String rrs = "";
private Button calculateButton;
/*// number1 소수점 처리
TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (!TextUtils.isEmpty(charSequence.toString()) && !charSequence.toString().equals(rs)) {
rs = decimalFormat.format(Double.parseDouble(charSequence.toString().replaceAll(",", "")));
number1.setText(rs);
number1.setSelection(rs.length());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
};*/
/*// number2 소수점 처리
TextWatcher watchernum2 = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (!TextUtils.isEmpty(charSequence.toString()) && !charSequence.toString().equals(rs2)) {
rs2 = decimalFormat.format(Double.parseDouble(charSequence.toString().replaceAll(",", "")));
number2.setText(rs2);
number2.setSelection(rs2.length());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
};*/
/* // number3 소수점 처리
TextWatcher watchernum3 = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if (!TextUtils.isEmpty(charSequence.toString()) && !charSequence.toString().equals(rs3)) {
rs3 = decimalFormat.format(Double.parseDouble(charSequence.toString().replaceAll(",", "")));
number3.setText(rs3);
number3.setSelection(rs3.length());
}
}
@Override
public void afterTextChanged(Editable editable) {
}
};
// result 소수점 처리
TextWatcher watcherresult = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if(!TextUtils.isEmpty(charSequence.toString()) && !charSequence.toString().equals(rrs)) {
rrs = decimalFormat.format(Double.parseDouble(charSequence.toString().replaceAll(",","")));
result.setText(rrs);
}
}*/
// @Override
// public void afterTextChanged(Editable editable) {
// }
// };
// 환산취득가액 계산 관련 메서드 처리
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
number1 = (EditText) findViewById(R.id.number1);
// number1.addTextChangedListener(watcher);
number2 = (EditText) findViewById(R.id.number2);
// number2.addTextChangedListener(watchernum2);
number3 = (EditText) findViewById(R.id.number3);
// number3.addTextChangedListener(watchernum3);
calculateButton = (Button) findViewById(R.id.calculateButton);
result = (TextView) findViewById(R.id.result);
// result.addTextChangedListener(watcher);
calculateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Long n1 = Long.parseLong(number1.getText().toString());
Long n2 = Long.parseLong(number2.getText().toString());
Long n3 = Long.parseLong(number3.getText().toString());
result.setText(Double.toString(n1 * n3 / n2));
}
});
}
}
안드로이드 스튜디오로 현재 계산기 어플을 공부 삼아 만들고 있습니다. 제가 만드는 어플은 아무래도 계산하는 액수가 큰 경우가 많기에 자바 코드에서 숫자에 콤마가 들어가도록 했는데 숫자콤마가 들어간 뒤로 한자리나 두자리 숫자 계산은 가능하지만 세자리 즉 콤마가 들어가게되는 숫자일 경우 계산이 안되고 오류가 나거나 그냥 튕기는데 혹시 오류를 좀더 자세히 알거나 확인할 수 있는 방법이 있을까요? 부탁드립니다.