나는 사용자가 높이를 센티미터와 피트 + 인치로 입력 할 수있는 편집 텍스트를 가지고 있습니다. 5'11 "입니다. 목표 단위에 대한 토글 버튼이 있으므로 사용자가 센티미터를 선택하면 피트 + 인치에서 센티미터로 또는 그 반대로 입력 된 텍스트를 변환해야합니다. 이제 높이를 변환 할 때 센티미터는 끝에 "\" "를 추가합니다. 나는 그것 때문에 횟수가 3높이 변환 - cm에서 피트 및 인치로 (또는 그 반대로)
public void onClick(View view) {
switch (view.getId())
{
case R.id.btnCm:
toggleHeightButton(R.id.btnCm,R.id.btnFeet,false);
convertToCentimeter(enter_height);
break;
case R.id.btnFeet:
toggleHeightButton(R.id.btnFeet,R.id.btnCm,true);
enter_height.addTextChangedListener(new CustomTextWatcher(enter_height));
break;
case R.id.btnKg:
toggleweightButton(R.id.btnKg,R.id.btnpound,false);
break;
case R.id.btnpound:
toggleweightButton(R.id.btnpound,R.id.btnKg,true);
break;
}
}
public class CustomTextWatcher implements TextWatcher {
private EditText mEditText;
public CustomTextWatcher(EditText enter_height) {
mEditText = enter_height;
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
public void afterTextChanged(Editable s) {
int count = s.length();
String str = s.toString();
if (count == 1) {
str = str + "'";
} else if (count == 2) {
return;
} else if (count == 3) {
str = str + "\"";
} else if ((count > 4) && (str.charAt(str.length() - 1) != '\"')){
str = str.substring(0, str.length() - 2) + str.charAt(str.length() - 1) + "\"";
} else {
return;
}
mEditText.setText(str);
mEditText.setSelection(mEditText.getText().length());
}
}
'dCentimeter' = 91.44, 182.88 등의 경우'centimeterToFeet'가 작동하지 않습니다. –