gibt es eine Möglichkeit ein edit so zu konfigureren, dass auch wenn der Inhalt gelöscht wird (das Feld ist dann leer) immer die 0 eingetragen wird. Da ich den Inhalt diverser edit's in einer ini-Datei speichere möchte ich verhindern, dass die App abstürzt wenn das Feld leer ist.
B4X:
Dim edt1 As EditText
edt1.Initialize("edt1")
edt1.InputType=edt1.INPUT_TYPE_DECIMAL_NUMBERS
edt1.TextSize=20
pnl.AddView(edt1, 210dip, 5dip,60dip, 40dip)
... usw
ListVar.Add(edt1.Text)
File.writelist(File.DirInternal,"configAGZ.ini",ListVar)
If edt1.Text = "" Then
ListVar.Add("0")
Else
ListVar.Add(edt1.Text)
End If
B4X:
Sub edt1_TextChanged (Old As String, New As String)
If New = "" Then
edt1.Text = 0
edt1.SelectionStart = 1
End If
End Sub
Diese zweite Möglichkeit hat zwar den Nachteil dass der Benutzer die 0 löschen muss wenn er eine neue Zahl eingeben will. Das könnte man in der Routine aber auch behandeln.
Danke, das mit dem Prüfen ist mir schon klar, habe ich mittlerweile auch gelöst:
B4X:
If IsNumber(edt1a.text) = False Then
edt1a.Text = 0
End If
Ich wollte nur wissen, ob es evtl. einfacher geht - also schon beim Erstellen des edits festlegen, dass "die Null immer steht".
Ich kenne das z.B. von Reportgeneratoren, wo man festlegen kann, dass bei leeren Feldern automatisch eine 0 reinkommt oder auch umgekehrt, dass bei 0 das angezeigte Feld leer bleibt.