German Android . EditText . Multiline

AHS

New Member
Licensed User
Longtime User
Dies ist mein 1. Beitrag. Nun muß ich erst mal herausfinden wie das alles geht.

Ich habe bereits etwas Übung mit Basic4ppc und hatte damit einige kleine Projekte gelöst. Nachdem Microsoft mit Phone 7 mir die Freundschaft kündigte, versuche ich mich jetzt in Android einzuarbeiten. Zum Start ein kleines Projekt: Einfacher Texteditor. Die gleiche Lösung hatte ich mit Basic4ppc gelöst. Dort ging das mit 'TextBox' recht einfach. Das Programm für Windows Mobile kann Texte aus Dateien lesen bearbeiten und in Dateien speichern.

Das gleiche will ich nun mit Basic4Android mit der View 'EditText' bewerkstelligen. Dazu sind einige Einstellungen nötig, wie Text oben beginnen, Text mit mehreren Zeilen u.s.w. Ich versuchte mehrere Varianten mit/ohne Designer. Mal geht das Eine mal das Andere aber nie Alles so wie gewünscht. Ich habe lange nach einem brauchbaren Beispiel gesucht und nichts gefunden. Nachfolgend ein kleines Programm mit einigen Einstellungen:


Sub Process_Globals
End Sub

Sub Globals
Dim TextEd As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
TextEd.Initialize ("TextEd")
TextEd.Text = "1.Zeile" '& CRLF '& "2.Zeile
TextEd.TextSize = 20
TextEd.TextColor = Colors.Blue
TextEd.SingleLine = False
TextEd.Text = "1.Zeile" '& CRLF & "2.Zeile
Activity.AddView (TextEd,0,0,320dip,480dip)
TextEd.Invalidate
End Sub


Z.B. obwohl 'SingleLine = False' eingestellt ist wird keine Textvorgabe mit mehreren Zeilen akzeptiert. In der Variante mit Designer geht dies aber manchmal. In der Variante mit 'Activity.AddView' ist die Einstellung 'Text Style.Text Alignment = Top' nicht möglich (nicht vorhanden). Es treten noch eine Reihe anderer Effekte auf. In der Hilfe kann ich einfach nichts brauchbares zu dem Thema finden.

Ist in dem Beispiel etwas falsch, fehlt etwas oder geht das einfach nicht? Weiß hier jemand Rat?
 

klaus

Expert
Licensed User
Longtime User
Folgender Code funktioniert.
B4X:
[FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]Sub [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]Globals[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]  Dim[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2] TextEd [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b]EditText[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]End Sub[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT]
 
[FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]Sub [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]Activity_Create(FirstTime [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]As [/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b][FONT=Courier New][SIZE=2][COLOR=#008b8b]Boolean[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2])[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]  TextEd.Initialize ([/FONT][/SIZE][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000]"TextEd"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2])[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]  TextEd.Text = [/FONT][/SIZE][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000]"1.Zeile"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2] & [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]CRLF[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2] & [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000]"2.Zeile"[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]& [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]CRLF[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2] & [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000][FONT=Courier New][SIZE=2][COLOR=#800000]"3.Zeile"[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]  TextEd.TextSize = [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080]20[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]  TextEd.TextColor = [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]Colors[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2].Blue[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]  TextEd.SingleLine = [/FONT][/SIZE][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]False[/COLOR][/SIZE][/FONT]
[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]  TextEd.Gravity = [/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]Gravity[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2].TOP[/SIZE][/FONT]
[SIZE=2][FONT=Courier New]  Activity.AddView (TextEd,[/FONT][/SIZE][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080]0[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080]0[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080]320dip[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/SIZE][/FONT][/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080][FONT=Courier New][SIZE=2][COLOR=#800080]480dip[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2])[/SIZE][/FONT]
[/SIZE][/FONT][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]End Sub[/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT][/COLOR][/SIZE][/FONT]
Beiliegendes Programm im Designer erstellt.

Beste Grüsse.
 

Attachments

  • TestEditText.zip
    5.5 KB · Views: 383

AHS

New Member
Licensed User
Longtime User
Das ging aber flott. Hab's auch gleich ausprobiert.

Beide Beispiele funktionieren jetzt.

Fehlerursache: In der Zuweisung 'TextEd.Text' fehlte das abschließende Anführungszeichen ("). Das wirkte sich etwas komisch in der Programmausführung aus. Die Hilfe zu Gravity ist mit 'Gravity As Int' etwas dünn ausgefallen. Damit konnte ich nichts anfangen. Sollte man vielleicht etwas ergänzen.

Eine weitere Frage zum jetzigen Stand: Kann man die Tastatur programmgesteuert ein/ausschalten? Wunsch wäre z.B. daß die Tastatur sofort erscheint. In anderen Fällen ist die Tastatur wiederum störend und soll weg.

Besten Dank zunächst.
 

klaus

Expert
Licensed User
Longtime User
Eine weitere Frage zum jetzigen Stand: Kann man die Tastatur programmgesteuert ein/ausschalten? Wunsch wäre z.B. daß die Tastatur sofort erscheint. In anderen Fällen ist die Tastatur wiederum störend und soll weg.
So viel Ich weiss, nein.
Man kann mit
EdtitText1.InputType=EdtitText1.INPUT_TYPE_NONE
verhindern dass die Tastatur erscheint.

Beste Grüsse.
 

AHS

New Member
Licensed User
Longtime User
Also, da ist immer noch der Wurm drin.

Verwende ich die Beispiele von Klaus läuft das Programm zunächst. Ergänze ich das Programm mit 'TextEd.InputType', z.B.

TextEd.InputType = TextEd.INPUT_TYPE_TEXT

Dann wird aus dem Ganzen wieder eine Singleline Eingabe.

Beispielprogramm:
Sub Globals
Dim TextEd As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
TextEd.Initialize("TextEd")
TextEd.Text = "1.Zeile" & CRLF & "2.Zeile"& CRLF & "3.Zeile"
TextEd.TextSize = 20
TextEd.TextColor = Colors.Blue
TextEd.SingleLine = False
TextEd.Gravity = Gravity.TOP
TextEd.InputType = TextEd.INPUT_TYPE_NUMBERS
Activity.AddView(TextEd,0,0,320dip,480dip)
TextEd.Invalidate
End Sub

Der Effekt tritt auf in beiden Varianten (mit Addview und mit Designer).
 

klaus

Expert
Licensed User
Longtime User
Ich sehe das gleiche Verhalten, Ich nehme an dass es ein Fehler ist.
Habe hier den Fehler gemeldet.
Du kannst Deinen Code so ändern:
B4X:
[FONT=Courier New]Sub Globals[/FONT]
[FONT=Courier New] Dim TextEd As EditText[/FONT]
[FONT=Courier New]End Sub[/FONT]
 
[FONT=Courier New]Sub Activity_Create(FirstTime As Boolean)[/FONT]
[FONT=Courier New] TextEd.Initialize("TextEd")[/FONT]
[FONT=Courier New] TextEd.Text = "1.Zeile" & CRLF & "2.Zeile"& CRLF & "3.Zeile" [/FONT]
[FONT=Courier New] TextEd.TextSize = 20[/FONT]
[FONT=Courier New] TextEd.TextColor = Colors.Blue[/FONT]
[FONT=Courier New] TextEd.Gravity = Gravity.TOP [/FONT]
[FONT=Courier New] TextEd.InputType = TextEd.INPUT_TYPE_NUMBERS[/FONT]
[FONT=Courier New] TextEd.SingleLine = False[/FONT]
[FONT=Courier New] Activity.AddView(TextEd,0,0,320dip,480dip)[/FONT]
[FONT=Courier New]End Sub[/FONT]
TextEd.Invalidate ist nicht nötig.

Falls Du aber den InputType Parameter wo Anders änderst musst Du vorlaüfig den SingleLine Parameter dahinter noch mal setzten.

Ich habe es hier als Bug angemeldet.

Best Grüsse.
 
Top