私はEditTextを使用して、ユーザーがDoubleに格納されている値を入力できるようにしています。EditTextを整数にデフォルト設定するが、10進数入力を許可する方法は?
デフォルトでは、Doublesは「0.0」のように見えますが、使用されていない場合は余分な小数点をバックスペースするのはちょっと面倒です。整数を強制的に「0」のように表示し、ユーザーが実際に使用することを決定した場合にのみ小数点を表示する方法はありますか?
現在のコード:
myEditText = (EditText) view.findViewById(R.id.my_edittext);
myEditText.setText(myVariable + "");
myEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String temp = s.toString();
if (s.length() > 0){
if (OtherMethods.isDouble(temp)) {
myVariable = Double.parseDouble(temp);
}
else {
myVariable = 0.0;
}
}
else {
myVariable = 0.0;
}
}
});
XML:Stringに
<EditText
android:id="@+id/my_edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="numberDecimal"
android:ems="10"
android:hint="Input Value"
android:imeOptions="actionDone"/>
デフォルトの場合は 'inpuType'を' text'に設定して、ユーザーが望むようにフィールドを設定できるようにします。 –
@NJそれは数字以外の値を許容するでしょう – KaliMa