Ich benutze einen EditText, damit ein Benutzer einen Wert eingeben kann, der in einem Double gespeichert ist.Wie kann man einen EditText als Ganzzahl festlegen, aber eine Dezimaleingabe zulassen?
Double sieht jedoch standardmäßig wie "0.0" aus und es ist ein wenig ärgerlich für einen Benutzer, die Extra Dezimalzahl rückgängig zu machen, wenn es nicht verwendet wird. Gibt es eine Möglichkeit, ganze Zahlen so zu erzwingen, dass sie wie "0" aussehen, und nur die Dezimalzahl anzeigen, wenn der Benutzer sich entscheidet, sie zu verwenden?
Aktueller Code:
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;
}
}
});
Die XML:
<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"/>
Wenn Sie Standardeinstellungen wünschen, dann setzen Sie 'inpuType' auf' text', so dass der Benutzer Felder so einstellen kann, wie er/sie es möchte. –
@NJ Das würde für nicht numerische Werte erlauben – KaliMa