German EditText Verständnissproblem

Blechdose

Member
Licensed User
Longtime User
Hallo alle zusammen,

ich habe ein Grundsätzliches Verständnissproblem wie ich mit
EditText meine Eingabe Verarbeite.

Ich suche ein Beispiel anhand mir klar wird wie ich die Eingabe in eine String
Variabele bekomme um damit dann weiter zu arbeiten.
Alle Demos oder Tutorials helfen mir da nicht, oder ich finde sie nicht, ist ja auch nicht gerade wenig.

Roland
 

Blechdose

Member
Licensed User
Longtime User
Hallo Klaus,
danke für deine Hilfe!

Ich versuche eine Eingabe für die IP Adresse und den Port mit Hilfe
von EditText zu schreiben.

Meine Sub Globals
B4X:
'Für die IP und Porteingabe mit Edittext
   Dim edtip As EditText
   Dim edtport As EditText
   Dim IPADRESSE As String
   Dim PORT As String

Meine SUB sieht so aus:
B4X:
Sub edtip_EnterPressed
' IP Eingeben, wird nichts Eingegeben ist die IP auf default
   edtip.Initialize("edtip")
   edtip.InputType = edtip.INPUT_TYPE_TEXT
   IPADRESSE = edtip.Text
End Sub
Sub edtport_EnterPressed
' PORT Eingeben, wird nichts Eingegeben ist die IP auf default
   edtport.Initialize("edtport")
   edtport.InputType = edtport.INPUT_TYPE_TEXT
   PORT = edtport.Text
End Sub

nur der Vollständigkeit halber die DEFAULT

*EDIT*

B4X:
Sub DISDEF
   'DEFAULT Adresse und PORT zuweisen und Anzeigen
   'DEFAULT ADRESSE 
   IPADRESSE = "192.168.0.90"
   'Editor Text anpassen
   edtip.Initialize("edtip")
   edtip.InputType = edtip.INPUT_TYPE_TEXT
   edtip.Text = (IPADRESSE)
   'DEFAULT PORT
   PORT = "50290"
   'Editor Text anpassen
   edtport.Initialize("edtport")
   edtport.InputType = edtport.INPUT_TYPE_TEXT
   edtport.Text = (PORT)
End Sub


Wenn ich die Var IPADRESSE als String definiere (ohne Eingabe) läuft das
Programm, sobald ich aber edtip benutze bekomme ich
Java.lang.NumberFormatException.

Ich glaub ich bin zu dumm das zu verstehen...

Roland

EDIT1: CODE angepast und erneut getestet. Nun läuft das Programm solange man nicht selber versucht die IP zu Ändern.
Sobald ich also z.B. 192.168.1.100 Port 3000 Eingebe bekomme ich den Fehler.
Ich habe auch schon aus Verzweifelung alle INPUT-TYPES durchprobiert.
 
Last edited:

klaus

Expert
Licensed User
Longtime User
Diese zwei Zeilen sind falsch:
B4X:
edtip.Text = (IPADRESSE)
edtport.Text = (PORT)
Sie müssen so aussehen:
B4X:
edtip.Text = IPADRESSE
edtport.Text = PORT
Wenn Du es so (IPADRESSE) schreibst heisst es IPADRESSE in eine Zahl umzuwandeln.

Beste Grüsse.
 

Blechdose

Member
Licensed User
Longtime User
Hallo Klaus,

danke für Hilfe, das Programm macht aber leider immer noch nicht was es
soll.

Aber den Debuger habe ich jetzt ein wenig besser im Griff :BangHead:

So wie ich das jetzt verstehe liegt mein Problem in der Typenwandlung
von String > INT da Port eine INT Variable sein sollte.

Beispiel:

Wenn ich die Parameter für IP und Port direkt Übergebe dann

B4X:
   Socket1.Initialize ("Socket1")
   Socket1.Connect ("192.168.1.100", 50290, 0)

Funktioniert es Super!

Im nächsten Schritt möchte ich aber die IP und den Port Einstellen können,
dafür hatte ich einen Edit.Text vorgesehen, damit klappt es aber nicht!

B4X:
Sub Globals
'Für die IP und Porteingabe mit Edittext
   Dim edtip As EditText
   Dim edtport As EditText

'Variabelen für die Socket Übergabe
   Dim IPADRESSE As String
   Dim PORT As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout ("haupt")

   edtip.Initialize(edtip)
   edtip.InputType = edtip.INPUT_TYPE_TEXT

   edtport.Initialize(edtport)
   edtport.InputType = edtport.INPUT_TYPE_TEXT
' hatte hier auch schon NUMBERS ging aber auch nicht
   
   
    DISDEF
   
End Sub

Sub DISDEF
   'DEFAULT Adresse und PORT zuweisen und Anzeigen
   'DEFAULT ADRESSE 
   'Editor Text anpassen
   edtip.Initialize(edtip)
   IPADRESSE = "192.168.1.100"
   edtip.Text = IPADRESSE
   'DEFAULT PORT
   'Editor Text anpassen
   edtport.Initialize(edtport)
   PORT = "50290"
   edtport.Text = PORT
End Sub
Sub edtip_EnterPressed
   edtip.Initialize(edtip)
   IPADRESSE = edtip.Text
End Sub
Sub edtport_EnterPressed
   edtport.Initialize(edtport)
   PORT = edtport.Text   
End Sub


B4X:
   Socket1.Initialize ("Socket1")
   Socket1.Connect (IPADRESSE, PORT, 0)

Entweder ich mache einen gewaltigen Denkfehler oder ...
ich suche eine andere Lösung

Roland
 

klaus

Expert
Licensed User
Longtime User
Wenn Port eine Int Variable isein soll, musst Du sie auch als Int deklarieren !
Du musst folgende Zeilen ändern:
Dim PORT As String
edtport.InputType = edtport.INPUT_TYPE_TEXT
müssen
Dim PORT As Int
edtport.InputType = edtport.INPUT_TYPE_NUMBERS
sein.

Wo sind edtip und edtport definiert?
Wenn sie in einer Layoutdatei definiert sind darfst Du sie nicht nochmals initialisieren.

Beste Grüsse.
 

Blechdose

Member
Licensed User
Longtime User
Ja, ich habe eine Layout Datei (haupt).

Dort hatte ich Testhalber auf Number probiert.


Ja Ja, ich bin halt noch ein :sign0104:


Nachdem ich also nun die edtport.Initialize(edtport) überall herausgenommen
habe läuft es Einwandfrei!

DANKE KLAUS

Ich war hier echt am Verzweifeln!

Roland
(nahe an der Schweiz / Schwarzwald)
 
Top