Füllen von TextView?

K

Kayru

Neues Mitglied
0
Hi Leute, bin neu hier und auch neu in der Android-AppEntwicklung :)

Ich sitze nun seit mehreren Stunden an einem Problem und finde die Lösung nicht.

Ich habe eine App die regelmäßig GPS-Daten raus schickt (Für Heizöl LKW's).
Nun soll das Gerät eine Art "Log" erstellen, jedes mal wenn die GPS-Daten raus geschickt werden bzw irgendetwas anderes passiert.

Bisher habe ich dafür (für Testzwecke) Toasts genutzt(Sprich er zeigt mir sobald er etwas sendet einen Toast an , BSP:"-Datensatz 367 gesendet- " oder "Datensatz 311 konnte nicht gesendet werden"), nun aber möchte ich alles in ein String-Array packen und mir dieses in der App-Oberfläche anzeigen lassen!

Sprich eine Art Fenster das automatisch aktualisiert (Ich stelle mir das ein bißchen wie ein cmd Fenster vor das seine Zeilen runter rattert.)

Ist sowas möglich? Wenn ja, wie? :( Bin um jeden Hinweis dankbar.
Und bitte setzt bei den Erklärungen nicht zu viel vorraus, bin wie gesagt blutiger Neuling.
 
Servus,

zu erst: ja, deine App ist definitiv realisierbar.

Wenn du Logs zum Testen brauchst, solltest du definitiv Logcat nehmen - der spätere Nutzer deiner App sieht diese Logs natürlich nicht - da kannst du auch mit Toasts arbeiten, um ihn zu informieren. Oder du setzt einen Dialog ein. Da solltest du vielleicht nochmal etwas nachlesen und dann entscheiden, was sinnvoller ist - vielleicht gibt es ja noch ganz andere Möglichkeiten?! ;)
Logcat ist wichtig und ab einer bestimmten Größe eines Projekts unablässig - allein schon der Fehlerbehandlung wegen.

GPS-Daten lassen sich über viele verschiedene Methoden (zB onLocationChanged(), onProviderDisabled() etc..) auslesen, hier solltest du ebenfalls nachlesen und dir überlegen welche der angebotenen Funktionen deine Ziele realisieren können.

Location and Sensors APIs | Android Developers <- das wird dir dabei stark helfen ;)

Anhand deiner Beschreibung vermute ich, dass du bis dato vielleicht viel probiert hast, aber wenig nachgelesen.

Mein Tipp: lese dich gründlich in die Materie ein und du bekommst das ganze ohne viel Kopfzerbrechen hin. Kleine Motivationshilfe: Die Gewinnung von Sensor-Daten unterscheidet sich bei anderen Sensoren (Beschleunigung, Schrittzähler, Annäherung, etc) nur noch geringfügig. :)

Darüber dass die Textausgabe auf dem Bildschirm automatisch "refresht" wird, brauchst du dir keine Gedanken machen, das wird von ganz alleine passieren, wenn du die richtigen Methoden der API verwendest.

Btw:
"Eine App die GPS-Daten rausschickt" -> das Szenario würde etwas anders aussehen: Das Smartphone erhält GPS-Daten, (verwertet diese) und versendet diese Daten über Internet/SMS - aber darum scheint es dir ja aktuell nicht zu gehen.
GPS funktioniert so, dass am Himmel Satelliten einen "Ping" rausschicken und ein GPS-Sensor (zB im Smartphone) das Signal bemerkt. Sobald von 4 verschiedenen Satelliten das Signal erkannt wird, hat man eine halbwegs zuverlässige Aussage über Position und Höhe - dass im Hintergrund natürlich noch die ein oder andere Berechnung stattfindet, erklärt sich von selbst.
 
Zuletzt bearbeitet:
Hä?
Er hat doch schon die App :D Er möchte lediglich bestimmte Ereignisse "loggen" und später in einer eigenen Activity ausgeben :O... Oder?!

@Kayru: (Vorausgesetzt deine App funktioniert schon und du möchtest nur deine bisherigen Toast's ersetzten):
Also wenn du deine Logs nur während der Laufzeit (also wenn deine App läuft) ausgeben willst und nach beenden der App wieder Löschen, so dass die ereignisse NICHT gespeichert werden, gehst du folgendermaßen vor:
- Du erstellst auf deinem Layout ein ScrollView, welches ein TextView beinhaltet.
- Jedesmal wenn du ein Ergenis ausgeben willst, sprich das bisherige Toast, gibst du das dem TextView:
Code:
TextView tv = (TextView) findViewById(R.id.tv);
tv.setText(tv.getText().toString() + "\nGPS Satz 318 gesendet");
ENDE :D

Wenn du es für "immer" speichern willst, solltest du dir eine Datenbank erstellen.. Aber das glaube wolltest du ja gar nicht?!

Gruß
 
Ich persönlich würde hier auf ListView zurückgreifen. Aus Übersichtlichkeitsgründen!

Liebe Grüße,
Patrick
 
@StefMa: Ich halte es für eher unwahrscheinlich, dass jemand den Sensor (funktionierend) implementiert, aber nicht weiß wie man einen Toast (oder eine TextView) füllt. oO aber vielleicht täusche ich mich ja auch :D
 
Vielen Dank erstmal für die vielen Antworten. Es ist tatsächlich so dass die app soweit schon fertig ist. Soweit funktioniert auch alles, die ganze GPS Geschichte wird über odata an einen host geschickt usw. Aber das ist ja eine andere Baustelle die bereits funktioniert.
Da diese app in Zukunft an Kunden vertrieben wird und diese Kunden garantiert anrufen werden und sagen : - app geht nicht!-
Und um dann die große Rum sucherei zu vermeiden soll es einen Button geben der ein Fenster aufruft in dem der log runter rasselt. Wenn dann zb mal grade kein Internet oder kein GPS Empfang da ist wird das in diesem log auch vermerkt.

Also sobald die app irgendwas macht soll es in diesem Fenster erscheinen.
Ist das die oben genannte list view?
 
Alles klaro, ich lese mich da mal ein :) Vielen dank schonmal für die Antworten! :)
 
Kayru schrieb:
Bisher habe ich dafür (für Testzwecke) Toasts genutzt(Sprich er zeigt mir sobald er etwas sendet einen Toast an , BSP:"-Datensatz 367 gesendet- " oder "Datensatz 311 konnte nicht gesendet werden"), nun aber möchte ich alles in ein String-Array packen und mir dieses in der App-Oberfläche anzeigen lassen!

Sprich eine Art Fenster das automatisch aktualisiert (Ich stelle mir das ein bißchen wie ein cmd Fenster vor das seine Zeilen runter rattert.)

Ist sowas möglich? Wenn ja, wie?

Hoffentlich nicht zu spät, aber das Lesen in der Zwischenzeit wird Dir sicher auch nicht geschadet haben ^^

Mach dazu einfach eine View/Fragment, die Du wie Du willst formatierst (Hintergrundfarbe etc) und mit einem Textelement füllst.

An dieses Textelement sendest Du du einfach diese Strings, zeilenweise. Oder per Zeile einen Listview-Eintrag, aber so wie Du es willst soll es wohl wie Du erwähnt hast mehr nach cmd Fenster aussehen, also würde ich einfach Zeilenweise einen String schreiben.

Allerdings stellt sich die Frage ob der User diese Daten überhaupt sehen soll/muss, denn Du könntest ja auch einfach das geschriebene Log per email an Dich senden lassen, und die Ausgabe über Toast so lassen wie sie ist, oder sowas.

Lesson: How to modify Android TextView in Java (findViewById, setText and getText) | Android4Beginners.com
 
Zuletzt bearbeitet:

Ähnliche Themen

S
Antworten
17
Aufrufe
571
jogimuc
J
5
Antworten
22
Aufrufe
1.444
590239
5
M
Antworten
4
Aufrufe
1.180
swa00
swa00
Zurück
Oben Unten