Beiträge von Brausebernd

    Hallo,
    ich bins nochmal.
    Hab das Thema mal ne weile ruhen lassen und andere Sachen realisiert.
    Nun fehlt mir noch zur Fertigstellung meiner App die Auswertung meiner Hashmap.
    Womit ich wieder beim Thema wäre.
    Ich versuch das mal zu beschreiben.
    Ich habe empfange Serverdaten mittels einer TCP-Verbindung.
    Diese Serverdaten werden bearbeitet, dass ich am Ende Key Value Paare habe.
    Diese Paare "packe" ich in eine Hashmap.
    Nun möchte ich die Hashmap nacheinander auslesen und die einzelnen Paare anzeigen lassen.
    Dazu erzeuge ich dynamisch eine entsprechende Anzahl von TextViews.


    Ich beschreibe das mal kurz an einem Beispiel.
    Ich habe eine Hasmap mit den Wert-Paaren


    1 : Das ist ein
    2 : Test


    Jetzt möchte ich die Hashmap auslesen und gleichzeitig die Anzahl der Einträge bestimmen.
    da die Anzahl 2 ist, möchte ich mittels einer for schleife (i=0, i<Hashmapeinträge, i++) dynamisch Textviews erzeugen und an bestimmte Positionen setzen.
    Die Oberfläche soll nun aus zwei Textfelden bestehen welche folgenden Text beinhalten.


    TextView1: Das ist ein
    TextView2: Test


    Anschließend empfange ich weitere Daten vom Server welche ich wieder in Form eines Key-Value Paares bringe z.B.:
    2 : Text
    Nun wird der Wert in der Hashmap überschrieben.
    Ich möchte jetzt aber nicht die kommplette Hashmap noch einmal auslesen und zur anzeige bringen, sondern nur das TexView2 aktualisieren.
    (Quasi eine Abfrage ob Key 2 bereits vorhanden wenn ja TextView2 "Test" durch "Text" ersetzen)


    Falls der Key noch nicht existiert wird er ebenfalls mit seinem entsprechenden Wert der Hashmap hinzugefügt.
    Beispiel:
    Daten vom Server:
    3 : Fertig
    Jetzt soll ein weiteres Textfeld (TextView3) erzeugt werden und zur anzeige gebracht werden.


    Ausgabe:
    TextView1: Das ist ein
    TextView2: Text
    TextView3: Fertig


    Die Werte-Paare in die Hashmap zu schreiben ist kein Problem:
    Die Hasmap sieht zum Schluss quasi so aus
    1 : Das ist ein
    2 : Text
    3 : Fertig


    Meine Fragen:
    Wie kann ich die Hashmap nacheinander auslesen und die Anzahl bestimmen um mit einer for_Schleife die entsprechende Anzahl von Views erzeugen(Brauche nur das Auslesen, Views innerhalb einer for-Schleife dynamisch erzeugen funktioniert)?


    Wie kann ich einen Vergleich anstellen ob der Key bereitsvorhanden ist und wie kann ich das entsprechende TextView aktualisieren?


    Ich habe gefühlt das "komplette" Internet durchforstet und nicht wirklich was brauchbares gefunden.


    Vielleicht hat ja jemand schonmal sowas ähnliches realisiert und könnte mir weiterhelfen.


    Gruß
    Brausebernd

    Hallo,
    da steh ich vor dem Problem was ich vorher auch schon hatte.
    In Zeile 9 bekomme ich die Glühlampe mit dem roten Kreuz -> Fehler:
    Wenn ich mit der Maus über die Lampe gehe, bekomm ich die Meldung: "The Constructor TextView (Connection_Layout) is undefined".
    Wech draufklicke gibts aber keine Lösungsvorschläge also Ich bekomme die Meldung: "No suggestions availabe".
    Woran kann das liegen?
    Gruß
    Brausebernd

    Danke!


    Kurze Frage noch, ich habe eine Klasse welche eines der beiden Layouts bereitstellt.
    Dieses Layout kann ich statisch beliebig viele View Elemente hinzufügen.
    Wie kann ich das dynamisch realisieren?
    Die Klasse sieht so aus:


    in der XML (connection_layout) kann ich beliebig viele views hinzufügen.
    Kann ich das auch dynamisch in der Klasse Connection_Layoutrealisieren oder brauch ich dazu eine eigene Klasse?
    wollte das so realisieren:


    funktioniert aber nicht so ganz.
    Jemand einen Tip?
    Gruß
    Brausebernd

    Hallo,
    ich mochte gern zwischen 2 Layouts hin und her "switchen". Das will ich mithilfe von Fragmenten realisieren.
    Klappt auch alles ganz gut. Mein Problem ist nur, dass beim Wechsel zwischen den Layouts das vorherige "überladen" wird, d.h. wenn ich z.B 5 mal zwischen den Layouts hin und her wechsel wird immer ein neues erstellt. Beim schließen der App muss ich dann halt 5x den zurück Button betätigen um auf meinen Home-Screen zu gelangen.
    Hoffe das Problem ist verständlich geschildert...;-)


    Zum Code:
    Ich habe zwei Klassen welche jeweils ein Layout beinhalten.
    In meiner Main möchte ich zwischen den Layouts wechseln.


    Ich poste mal meine Main:


    Im Anhang mal die Oberfläche.
    Mithilfe der Buttons lade ich das entsprechende Layout.
    Ich möchte nun aber das vorherige löschen.
    Also wenn ich den zurück Button auf meinem Gerät einmalig betätige, möchte ich sofort wieder auf dem Home-Screen landen.
    Ich hoffe mein Problem ist verständlich beschrieben.


    Gruß
    Brausebernd

    Hallo,
    funktioniert soweit alles ganz gut, nur noch eine Frage.
    Wie kann ich eine bestehende Hasmap in einen TextView komplett ausgeben?
    Kurzes Beispiel:


    Wie muss ich Zeile 32 gestalten?


    Das Problem liegt darin, dass ich nicht weiß wieviele Einträge in der Hashmap vorhanden sind.
    Der Code diehnt nur zum Beispiel.


    Ausgabe auf meinem Androidgerät hab ich mir so vorgestellt.
    1 : A
    2 : B
    3 : C
    4 : D
    Bräuchte dringend eine Lösung und krieg es leider nicht hin. :(


    Gruß
    Brausebernd

    Hallo,
    danke für die Antwort.
    Funktioniert soweit nur eine Frage habe ich noch.
    Ich möchte die Hashmap aktualisieren/erweitern.
    Dazu habe ich einen weiteren String

    Code
    String string1 = "1 , Z : 4 , D"


    Wie mache ich das damit die Ausgabe so aussieht.
    Buchstabe: Z
    Buchstabe: B
    Buchstabe: C
    Buchstabe: D


    Gruß Brausebernd

    Hallo,
    ich bräuchte nochmal Hilfe.
    Ich möchte einen String, bestehend aus Substrings aufteilen und in eine Hashmap speichern.

    Code
    String string = "1 , A : 2 , B : 3 , C";


    So ist der String aufgebaut.
    Diesen String teile ich in 3 Substrings:
    "1 , A"
    "2 , B"
    "3 , C"
    Diese Substrings möchte ich in eine Hashmap speichen wobei die Zahl der Key sein soll und der Buchstabe der Wert.
    Der String ist jetzt zum testen fest vorgegeben. In der richtigen App ist die Anzahl der Substrings jedoch unbekannt.


    Meine Frage:
    Wie kann ich eine Hashmap so erstellen, dass sich die Größe nach der Substringanzahl richtet?
    Wie kann ich sie auslesen das das Ergebnis ungefähr so dargestellt wird?


    Buchstabe: A
    Buchstabe: B
    Buchstabe: C


    Ich habe das versucht so zu realisiern aber funktioniert nicht wie ich es mir denke.



    Gruß
    Brausebernd

    Hallo,
    ich habe mal wieder ein Problem mit meiner Server- Client- Anwendung.
    Ich empfange in meiner Main Activity (Start), mit Hilfe eines Handlers, wechselnde Daten vom Server.
    Diese kann ich mir auch Problemlos anzeigen lassen.
    Nun möchte ich meine Anwendung um eine weitere Activity (Anzeige) erweitern und die wechselnden Daten dorthin übergeben.
    Ich habe es versucht so zu realisieren:
    Start (Main Activity)



    In der zweiten Activity will ich mir nun die wechselnden Daten in einem TextView anzeigen lassen.
    Das habe ich so realisiert:


    Das Problem liegt jetzt darin, dass immer wieder die Activity Anzeige aufgerufen wird wenn sich die Daten im Handler ändern.
    (Wenn ich die App beenden möchte muss ich erst x Seiten schließen um diese zu beenden)
    Frage:
    Ist Intent der richtige Gedanke?
    Wie kann ich aus der Activity Start einmalig die zweite Activity aufrufen und (im Hintergrund) die wechselnden Daten übergeben?


    Gruß
    Brausebernd

    Hallo,



    ich habe mal wieder vor eine App zu schreiben.



    Bin aber leider ein bisschen faul. ;)



    Ich möchte gern in einer separaten Klasse ein Objekt
    erzeugen, welches ich immer wieder verwenden möchte. Es soll aus einem ImageView,
    einem Button und einem TextView bestehen. In meiner Main Klasse erzeuge ich
    Zufallswerte (zum Anfang erstmal zwischen 1 und 5).


    Nun zu meiner eigentlichen Frage: Wenn eine Zahl kommt z.B. die 2 möchte ich
    diese in eine Liste abspeichern. anschließend soll meine Objekt geladen werden
    im TextView die Zahl 2 eingetragen werden und das Objekt an eine bestimmte
    Position auf der Oberfläche angezeigt werden.


    Anschließend soll die nächste Zahl bearbeitet werden mit der gleichen Routine,
    also wenn z.B. die Zahl 1 erscheint soll diese in einer Liste
    gespeichert werden, Das Objekt geladen werden das TextView mit dem Wert 1
    belegt werden und an einer bestimmten Position in der Oberfläche angezeigt
    werden. Die Zahlen 1 und 2 sollen nun beide gleichzeitig an unterschiedlichen
    Positionen auf der Oberfläche angezeigt werden. Wenn jetzt eine weitere Zahl
    erscheint soll in der Liste nachgeschaut werden ob die Zahl schon existiert und
    somit schon auf der Oberfläche gesetzt ist. Ist dies der Fall soll nichts
    geschehen, taucht die Zahl noch nicht in der Liste aus soll, wie oben
    beschrieben, vorgegangen werden.



    Die App soll also aus 2 verschiedenen Hauptteilen bestehen.



    1: Wert prüfen ob in Liste vorhanden, wenn nicht speichern.



    2: Objekt in separaten Klasse anlegen, in Main Klasse laden,
    Werte zuweisen und anzeigen lassen.



    Ich möchte die Darstellung dynamisch und nicht statisch
    machen, weil die App später mal mit wechselnden Anzahlen von Werten arbeiten
    soll die einige tausend übersteigen könnten.



    Hat jemand ein Beispiel zu einem oder vielleicht sogar zu
    beiden Teilen?


    Das muss es doch schon irgendwo fertig geben, vielleicht hat jemand sogar schon
    mal sowas ähnliches erstellt und könnte es mir zukommen lassen. Wie oben schon
    erwähnt bin ich ziemlich faul und das was ich benötige müsste ja schon irgendwo
    existieren weil es ja Bestandteil vieler Spiele etc. ist.





    Gruß



    Brausebernd

    Hallo,
    ich habe mal eine kurze Frage. Wie kann ich eine App genau an einer bestimmten stelle wieder starten.
    Also ich habe eine TCP- Verbindung mit welcher ich ständig Daten empfange.


    Meine MainActivity siehr so aus:


    Die Activity ruft eine weitere Klasse (Verbindung) in einem anderen Package auf.
    Diese stellt eine eine TCP-Verbindung zu einem Server her empfängt die Daten vom Server und gibt diese wieder an die Main Activity zurück.


    Im TextView fehlermeldung werden die Daten vom Server ausgegeben.
    Wenn ich nun jedoch die App beende und später neu starte wird nix mehr angezeigt.
    Meiner Meinung liegt das an dieser Code Stelle:

    Code
    Verbindung verbindung = new Verbindung(myHandler, ip);
    verbindung.start();


    Meine Frage kann man die App im Hintergrund "weiterlaufen" lassen?
    Ich häng mal mein Projekt an, dass ihr es mal testen könnt wenn ihr mir helfen wollt.
    (Die Activity Anzeige.java bitte erstmal nicht beachten. Benötige ich für eine Erweiterung.)


    Eine weitere Frage: kann ich aus einem Handler wechselnde Daten an eine andere Activity übergeben?
    Meine Versuche stürzen immer wieder ab aber vielleicht später mehr dazu ;)


    Gruß
    Brausebernd

    Kann mir keiner helfen?
    Ich müsste doch das Textview irgendwie von Zoomlevel0 auf ZommlevelX umrechnen.
    Villeicht kann es ja jemand nochmal kurz in Eclipse laden und mir helfen.
    Hier noch mal das Manifest:


    Der anderer Code ist wie oben.


    Bitte helft mir. ;(

    Hallo,
    heute ist irgendwie nicht mein Tag.
    Ich habe jetzt ein weiteses Problem.
    Ich habe eine TCP Verbindung mit welcher, wie bereits in einem anderen Thema erwähnt, wechselnde Daten übertragen werden.
    der übertragende String sieht wie folgt aus (zahl ; zahl)
    Es kommt auch alles soweit an nun möchte ich den String teilen und die beiden Zahlen in Integerwerte umwandeln welche dann x und y koordinaten von einem Button sein sollen.
    Ich empfange die Daten in einem Thread und gebe sie an einen Handler weiter.
    Was vom Server kommt:


    wie es bein Client ankommt und ich an den Handler weitergebe.



    im Handler versuche ich folgendes zu machen:



    Die Logcat sagt dazu folgendes:
    09-16 18:42:34.090: D/dalvikvm(2200): Late-enabling CheckJNI
    09-16 18:42:34.210: W/System.err(2200): java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 4444): connect failed: ECONNREFUSED (Connection refused)
    09-16 18:42:34.210: W/System.err(2200): at libcore.io.IoBridge.connect(IoBridge.java:114)
    09-16 18:42:34.210: W/System.err(2200): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    09-16 18:42:34.210: W/System.err(2200): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    09-16 18:42:34.210: W/System.err(2200): at java.net.Socket.startupSocket(Socket.java:566)
    09-16 18:42:34.210: W/System.err(2200): at java.net.Socket.tryAllAddresses(Socket.java:127)
    09-16 18:42:34.210: W/System.err(2200): at java.net.Socket.<init>(Socket.java:177)
    09-16 18:42:34.210: W/System.err(2200): at java.net.Socket.<init>(Socket.java:149)
    09-16 18:42:34.210: W/System.err(2200): at com.example.client.Verbindung.run(Client.java:141)
    09-16 18:42:34.210: W/System.err(2200): at java.lang.Thread.run(Thread.java:856)
    09-16 18:42:34.210: W/System.err(2200): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
    09-16 18:42:34.210: W/System.err(2200): at libcore.io.Posix.connect(Native Method)
    09-16 18:42:34.210: W/System.err(2200): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
    09-16 18:42:34.210: W/System.err(2200): at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    09-16 18:42:34.210: W/System.err(2200): at libcore.io.IoBridge.connect(IoBridge.java:112)
    09-16 18:42:34.210: W/System.err(2200): ... 8 more

    09-16 18:42:34.240: D/AndroidRuntime(2200): Shutting down VM
    09-16 18:42:34.240: W/dalvikvm(2200): threadid=1: thread exiting with uncaught exception (group=0x40a411f8 )
    09-16 18:42:34.250: E/AndroidRuntime(2200): FATAL EXCEPTION: main
    09-16 18:42:34.250: E/AndroidRuntime(2200): java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
    09-16 18:42:34.250: E/AndroidRuntime(2200): at com.example.client.Client$1.handleMessage(Client.java:37)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at android.os.Handler.dispatchMessage(Handler.java:99)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at android.os.Looper.loop(Looper.java:137)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at android.app.ActivityThread.main(ActivityThread.java:4424)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at java.lang.reflect.Method.invokeNative(Native Method)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at java.lang.reflect.Method.invoke(Method.java:511)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    09-16 18:42:34.250: E/AndroidRuntime(2200): at dalvik.system.NativeStart.main(Native Method)

    09-16 18:42:34.350: D/dalvikvm(2200): GC_CONCURRENT freed 240K, 6% free 6746K/7111K, paused 3ms+4ms


    Kann man vieleicht den String aus dem Handler an eine seperate Methode übergeben und dort die Teilung, Umwandlung und setzen des Buttons realisieren?
    wenn ja wie?


    Kann mir irgend einer weiterhelfen?
    Bei Bedarf kann ich auch den kompletten Code posten aber vielleicht sieht ja einer auf den ersten Blick wo das Problem liegt.
    Gruß
    Brausebernd

    Hallo,
    ich bin echt am Verzweifeln.
    Habe mit hilfe des Internets einen Code zusammengebastelt der ein zoombares Imageview erstellt.
    Ich möchte ein Textview an einer festen Position über dem Image haben.
    Hat irgendeiner eine gute Idee oder kennt vielleicht eine brauchbare Internetseite?
    Hier mal mein Code der aus 2 Activitys besteht:
    Layout:


    Layout1:


    Ich weiß einfach nicht wo ich das TextView definieren muss, dass es unabhängig vom Zoom an einer entsprechenden Position angezeigt wird.
    Gruß
    Brausebernd

    Hallo,
    erstmal vielen Dank an titus für die Antwort. Werd das morgen gleich mal ausprobieren ob mir das weiterhilft.
    Vielleicht nochmal zum Verständnis, das ganze sollte so ähnlich wie google maps funktionieren.
    Also der Text soll auf einer festen Koordinate angezeigt werden, unabhängig vom Zoom und der "Verschiebung''.
    Vielleicht hat ja jemand sogar nen kurzes Beispiel irgendwo rumzuliegen. ^^
    Bei einer mobilen Website ist ja auch ein Link, Button, Text an einer bestimmten Position unabhängig vom zoom etc. deswegn habe ich mir eigentlich gedacht das es mit WebView funktionieren müsste.
    Gruß
    Brausebernd

    Hallo,
    habe da ein kleines Problem.
    Ich habe ein Programm geschrieben, welches mittels WebView ein Image in den Hintergrund legt.
    Das Image ist zoombar und verschiebbar.
    Nun möchte ich über diesen Hintergrund ein TextView legen, welches genau an einer Position bleibt.
    Als Hintergrundbild hab ich einen Grundriss, der sich, wie schon erwähnt, zoomen lässt.
    In einem Raum von diesen Hintergrundbild möchte ich einen Text einfügen (z.B. Wohnzimmer).
    Das Problem liegt darin, dass beim hereinzommen in den Grundriss der Text nicht an der bestimmten Stelle bleibt, sondern "fest" über dem Hintergrund liegt.
    Ich hoffe mein Problem ist verständlich beschrieben. ^^
    Nun zu meiner Frage: Ist das überhaupt mit WebView möglich?
    Wenn ja kann mir jemand weiterhelfen?


    Hier mal mein Code:
    Layout_wv.java (Activity):


    activity_layout_wv.xml


    Hoffe irgendjemand kann mir helfen.
    Falls noch genauere Infos benötigt werden oder irgendetwas unverständlich ist, bitte melden.


    Gruß
    Brausebernd

    Hallo,
    kurze Frage noch, die App stürzt ab wenn der Server nicht gestartet ist, bzw. wenn eine falsche Server IP eingestellt ist.
    Wie kann ich das beheben?
    Gruß
    Brausebernd


    Edit: Behoben!