F fraureuther1 Member Licensed User Longtime User Jun 5, 2014 #1 Ich bin Elektroniker und habe Fernsteuerungen von Geräten immer in VisualBasic geschrieben. Nun möchte ich es mal in AndroidBasic versuchen. Einiges funktioniert schon recht gut, aber es fehlt an Routine. Ich möchte Zahlen in ein Edittextfeld eingeben. Dabei soll nur eine bestimmte Anzahl von Zeichen möglich sein. Wie geht das? MfG Uhland
Ich bin Elektroniker und habe Fernsteuerungen von Geräten immer in VisualBasic geschrieben. Nun möchte ich es mal in AndroidBasic versuchen. Einiges funktioniert schon recht gut, aber es fehlt an Routine. Ich möchte Zahlen in ein Edittextfeld eingeben. Dabei soll nur eine bestimmte Anzahl von Zeichen möglich sein. Wie geht das? MfG Uhland
klaus Expert Licensed User Longtime User Jun 5, 2014 #2 Code: EditText1.InputType = EditText1.INPUT_TYPE_NUMBERS ' ' ' Sub EditText1_TextChanged (Old As String, New As String) If New.Length = 5 Then EditText1.Text = Old End If End Sub EditText1.INPUT_TYPE_NUMBERS kann im Designer definiert werdden. Das Beispiel begrenz die Anzahl der Ziffern auf 4.
Code: EditText1.InputType = EditText1.INPUT_TYPE_NUMBERS ' ' ' Sub EditText1_TextChanged (Old As String, New As String) If New.Length = 5 Then EditText1.Text = Old End If End Sub EditText1.INPUT_TYPE_NUMBERS kann im Designer definiert werdden. Das Beispiel begrenz die Anzahl der Ziffern auf 4.
MaFu Well-Known Member Licensed User Longtime User Jun 5, 2014 #3 Alternativ: Code: Sub EditText1_TextChanged (Old As String, New As String) If New.Length > 4 Then EditText1.Text = New.SubString2(0,4) End If End Sub Das sollte dann auch funktionieren, wenn ein längerer Text über Copy/Paste eingefügt wird.
Alternativ: Code: Sub EditText1_TextChanged (Old As String, New As String) If New.Length > 4 Then EditText1.Text = New.SubString2(0,4) End If End Sub Das sollte dann auch funktionieren, wenn ein längerer Text über Copy/Paste eingefügt wird.
F fraureuther1 Member Licensed User Longtime User Jun 5, 2014 #4 Hallo Klaus, danke, da wäre ich nicht drauf gekommen, es funktioniert. Ich bin eben noch zu sehr an Visualbasic orientiert. Jetzt weis ich auch mit dem "old" und "new" etwas anzufangen. ich hatte schon überlegt, für was das gut sein soll. Meine nächste Frage wäre nun, gibt es auch die Möglichkeit, die Eingabe von rechts zu beginnen, wie eben bei Zahlen üblich. Welche Funktion kann die Mid-Funktion ersetzen. Ich will in einem Text ein Zeichen durch ein anderes ersetzen, dessen Position ich kenne. MfG Uhland
Hallo Klaus, danke, da wäre ich nicht drauf gekommen, es funktioniert. Ich bin eben noch zu sehr an Visualbasic orientiert. Jetzt weis ich auch mit dem "old" und "new" etwas anzufangen. ich hatte schon überlegt, für was das gut sein soll. Meine nächste Frage wäre nun, gibt es auch die Möglichkeit, die Eingabe von rechts zu beginnen, wie eben bei Zahlen üblich. Welche Funktion kann die Mid-Funktion ersetzen. Ich will in einem Text ein Zeichen durch ein anderes ersetzen, dessen Position ich kenne. MfG Uhland
klaus Expert Licensed User Longtime User Jun 5, 2014 #5 txt1 = Mid(txt, i, j) ergibt txt1 = txt.SubString2(i, i + j) Ich würde es so machen: Code: Sub Replace(Original As String, New As String, Position As Int) As String Dim t1, t2 As String t1 = Original.SubString2(0, Position) t2 = Original.SubString2(Position + New.Length, Original.Length) Return t1 & New & t2 End Sub
txt1 = Mid(txt, i, j) ergibt txt1 = txt.SubString2(i, i + j) Ich würde es so machen: Code: Sub Replace(Original As String, New As String, Position As Int) As String Dim t1, t2 As String t1 = Original.SubString2(0, Position) t2 = Original.SubString2(Position + New.Length, Original.Length) Return t1 & New & t2 End Sub
F fraureuther1 Member Licensed User Longtime User Jun 5, 2014 #6 danke Klaus, ich habe mich falsch ausgedrückt. Ich meinte die Mid-Anweisung Mid(text1,Start, Länge) = Text2. Du hast es aber richtig erkannt. Ist aber schon aufwändig. Gut, in einer Sub brauche ich das nur einmal für 10 Ersetzungen. Wie ist es mit der Zahleneingabe von rechts, ist das möglich? MfG Uhland
danke Klaus, ich habe mich falsch ausgedrückt. Ich meinte die Mid-Anweisung Mid(text1,Start, Länge) = Text2. Du hast es aber richtig erkannt. Ist aber schon aufwändig. Gut, in einer Sub brauche ich das nur einmal für 10 Ersetzungen. Wie ist es mit der Zahleneingabe von rechts, ist das möglich? MfG Uhland