German ListView bzw ScrollView mit einzelnen Einträgen

Stefan02

New Member
zu aller Erst ich bin neu hier im Forum wollte mich einfach mal mit einem Hallo vorstellen.

Gleich auch schon eine Frage: Ich interessiere mich für eine Art Ansicht, welche ich durch ein ListView erstellen will. meine Frage, nachdem ich die Tutorials durchgeschaut habe und in dieser Suche nicht das gefunden habe was ich wollte wollte ich fragen wie das funweitktioniert das ich wenn ich eine zweite Line habe in dieser unterschiedliche Angaben machen kann.
Also:
Eintrag 1
Hier könnte etwas stehen
Eintrag 2
Hier könnte etwas anderes stehen
ect.

Es geht mir nur darum wie ich in dieser
ListView1.AddTwoLines(xxx)

das so machen kann damit es später zu meinem erfolg kommt. Ich möchte es auch möglist in dieser einen Datei deklarieren also ausgeben und reinschreiben alles.

Kann mir jemand helfen?

Grüße
 

Kiffi

Well-Known Member
Licensed User
Longtime User
Hallo Stefan02,

B4X:
For i = 1 To 300
    ListView1.AddTwoLines("Eintrag " & i, "Hier könnte etwas stehen " & i)
Next

(steht aber auch so im Tutorial)

Grüße ... Kiffi
 

klaus

Expert
Licensed User
Longtime User
Ich verstehe leider nicht genau was Du machen willst.
Ich interessiere mich für eine Art Ansicht
Was für eine Ansicht und wie?

Eintrag 1
Hier könnte etwas stehen
Eintrag 2
Hier könnte etwas anderes stehen
Was meinst Du mit Eintrag?
Eintrag1 erste Zeile und Eintrag2 zweite Zeile ?
Oder zwei Einträge in der ListView ?
Wenn es zwei Zeilen sind:
B4X:
ListView1.AddTwoLines(Eintrgag1, Eintrag2)
... das so machen kann damit es später zu meinem erfolg kommt.
Was für einen Erfolg erhoffst Du?


Ich möchte es auch möglist in dieser einen Datei deklarieren also ausgeben und reinschreiben alles.
Ich verstehe leider nicht was Du unter 'in dieser einen Datei' verstehst, Du musst auch näher erklären was Du unter deklareiren, reinschreiben und ausgeben verstehst.

Um eine konkrete Antwort geben zu können brauchen wir genauere Angaben:
- was für Daten
- woher sie kommen
- was damit gemacht werden soll
- wohin sie kommen sollen
- usw

Die Anzeige könnte entweder in einer ListView oder in einer ScrollView gemacht werden, abhängend von den Daten und was Du anzeigen willst und wie.
ListView ist einfacher zu benutzen aber begrenzt, ScrollView ist aufwendiger aber reichhaltiger in den Möglichkeiten.

Beste Grüsse.
 

Stefan02

New Member
Also ich habe schnell mal en Bild gebastelt um es zu verdeutlichen:

tabelleg.png


Kiffi, also so wie du mir das geschickt hast, hab ich es ja. Ich möchte es ja so haben damit der zweite Eintrag ganz und gar anders ist.
Beispielsweise:
Sendung mit der maus 1
Wie werden Bleistifte gebaut
Sendung mit der maus 2
Woher kommt die deutsche Sprache
Sendung mit der maus 3
Wer ist eig. dieser Hund

usw.

so in der Art If line 2 = "#1" then Ausgabe 1
irgendwie so

Ich hoffe ich konnte es jetzt besser als eben erklären

zu den Fragen von klaus:
was für Daten? ja einfach nur Text, wie geschrieben.
woher sie kommen? am liebsten wäre es wenn ich sie direkt in der datei irgendwie einbringen könnte, andernfalls ist es evtl. noch komplizierter für mich
was damit gemacht werden soll? Ja wie gesgat immer die zweite Line anderen Text ausgeben.
wohin sie kommen sollen? die Daten in die zweite Line
 

Kiffi

Well-Known Member
Licensed User
Longtime User
vielleicht so?
B4X:
Sub Globals

   Type tListItem(Eintrag1 As String, Eintrag2 As String)
   
   Dim ListItems(3) As tListItem
   
   Dim ListView1 As ListView

End Sub

Sub Activity_Create(FirstTime As Boolean)

   ListView1.Initialize("ListView1")
   Activity.AddView(ListView1, 0, 0, 100%X, 100%Y)

   ListItems(0).Eintrag1="Sendung mit der maus 1"
   ListItems(0).Eintrag2="Wie werden Bleistifte gebaut"

   ListItems(1).Eintrag1="Sendung mit der maus 2"
   ListItems(1).Eintrag2="Woher kommt die deutsche Sprache"
   
   ListItems(2).Eintrag1="Sendung mit der maus 3"
   ListItems(2).Eintrag2="Wer ist eig. dieser Hund"
   

   For Counter = 0 To ListItems.Length - 1
      ListView1.AddTwoLines(ListItems(Counter).Eintrag1, ListItems(Counter).Eintrag2)
   Next

End Sub
(wobei die Einträge normalerweise aus einer Datenbank oder ähnliches
kommen. Aber das willst Du ja nicht (wenn ich Dich richtig verstanden habe)).

Grüße ... Kiffi
 

klaus

Expert
Licensed User
Longtime User
Beiliegend ein kleines Beispiel was man machen kann.
Ein ein bisschen anders als Kiffi, das zeigt auch dass es mehrere Wege gibt.

Kiffi war schneller als Ich.

Beste Grüsse.
 

Attachments

  • ListView1.zip
    6.5 KB · Views: 181

Stefan02

New Member
Ihr beiden seid echt spitze!
So wie Kiffi es gemacht hatte, wollte ich es haben.
meine Frage noch: Dim ListItems(3) As tListItem muss ich hier, wenn ich unten etwas neues dazu schreib die 3 entsprechend auf 4, 5, 6 ändern? Oder bleibt dies?

Zu deiner letzten Aussage: Ja wollen evtl. ja aber nicht in meinem momentanen Stadium, erstmal etwas trainieren

@ klaus
Deine Liste ist viel zu ausführlich für meinen Zweck. Aber sie gibt mir einen echt sehr guten Einblick in Weiterführendes.

Wenn ich mich dafür Erkenntlich zeigen könnte
 

Kiffi

Well-Known Member
Licensed User
Longtime User
meine Frage noch: Dim ListItems(3) As tListItem muss ich hier, wenn ich unten etwas neues dazu schreib die 3 entsprechend auf 4, 5, 6 ändern?
ja, musst Du. Ansonsten bekommst Du einen Index out of bounds - Fehler. [Edit: Quatsch gelöscht]

Ich habe Dir noch mal einen Schnippsel zusammengebaut. Ich glaube, dass
das ein wenig einfacher zu handhaben ist:

B4X:
Sub Globals

   Type tListItem(Eintrag1 As String, Eintrag2 As String)
   
   Dim ListItems As List
   
   Dim ListView1 As ListView

End Sub

Sub Activity_Create(FirstTime As Boolean)

   ListView1.Initialize("ListView1")
   Activity.AddView(ListView1, 0, 0, 100%X, 100%Y)

   ListItems.Initialize

   AddItem("Sendung mit der Maus 1", "Wie werden Bleistifte gebaut")
   AddItem("Sendung mit der Maus 2", "Woher kommt die deutsche Sprache")
   AddItem("Sendung mit der Maus 3", "Wer ist eig. dieser Hund")

   For Counter = 0 To ListItems.Size - 1
      Dim ListItem As tListItem
      ListItem = ListItems.Get(Counter)
      ListView1.AddTwoLines(ListItem.Eintrag1, ListItem.Eintrag2)
   Next

End Sub

Sub AddItem(Eintrag1 As String, Eintrag2 As String)

   Dim ListItem As tListItem
   
   ListItem.Initialize
   
   ListItem.Eintrag1=Eintrag1
   ListItem.Eintrag2=Eintrag2
   
   ListItems.Add(ListItem)

End Sub

Grüße ... Kiffi
 
Last edited:

Stefan02

New Member
Das hier sieht natürlich noch vieel schöner aus, danke dir herzlichst

Edit: Darf ich noch nachfragen wie genau ich evtl. ein Clickevent draus machen könnte?

also wenn ich auf "Wie werden Bleistifte gebaut" drücke auf ne andere activity komm?
ich habe da so eine Ahnung mit Case, aber die Ahnung ist sehr dunkel

Grüße
 
Last edited:
Top