German Farbwert übergeben/Togglebutton prüfen

Discussion in 'German Forum' started by mocca, Jun 16, 2015.

  1. mocca

    mocca Member

    Hallo,

    ich habe hier eine kleine App mit zwei Activitys.

    Nun möchte ich von der zweiten Activity,
    die Button.textcolor der ersten activity ändern.

    Auch anders herum würde ich gerne von
    Activity1 überprüfen ob auf Activity2 der Togglebutton gechecked ist oder nicht.

    Könnte mir bitte jemand dabei behilflich sein?

    Vielen Dank
     
  2. specci48

    specci48 Well-Known Member Licensed User

    Hallo mocca,

    anbei ein schnell implementiertes Beispiel.
    Der Austausch funktioniert im Prinzip über globale Variablen, da man Views in inaktiven Activities nicht direkt aktualisieren kann.


    Gruß
    specci48
     

    Attached Files:

    mocca and RauchG like this.
  3. mocca

    mocca Member

    Hallo speci48,

    danke für deine Antwort,aber leider kommt folgender Fehler.
    Kannst du mir bitte ein Beispiel
    mit Button.forecolor und Togglebutton.checked posten?
     

    Attached Files:

  4. specci48

    specci48 Well-Known Member Licensed User

    Schau dir bitte nochmal mein unverändertes(!) Originalbeispiel an.
    - dort ist keine ListView enthalten, die laut deinem Screenshot ein Fehler produziert
    - es enthält genau die beiden gewünschten Beispiele

    Drückst du in der Activity1 den den Button "ToggleTest", so wird der Status des ToggleButtons aus Activity2 agezeigt.
    Drückst du in der Activity2 den den Button "Change Button Color in Main" und gehst zurück zur Activity1, so hat der Button "Textcolor" eine andere Textfarbe bekommen.
     
    DonManfred likes this.
  5. mocca

    mocca Member

    Hallo,

    sorry,war mein Fehler.
    Dein Beispiel funktioniert natürlich bestens.
    Vielen Dank
     
  6. mocca

    mocca Member

    Wie sieht das ganze aus wenn ich mehr als einen Togglebutton verwende?
     
  7. specci48

    specci48 Well-Known Member Licensed User

    Du musst im Prinzip jedem ToggleButton einen eigenen Boolean spendieren, der die Information in einer globalen Variablen bereit hält.
    Bei 5 ToggleButons also 5 separate globale Booleans. Und jeweils in der CheckedChange Methode der 5 Buttons den richtigen globalen Wert aktualisieren.
     
  8. MaFu

    MaFu Well-Known Member Licensed User

    Ich würde in dem Fall ein Array verwenden.

    Nehmen wir an, Du hast im Designer fünf ToggleButton erstellt und von ToggleButton1 bis ToggleButton5 benannt.
    Gib den Buttons im Tag Property eine fortlaufende Nummer mit.
    Also bei ToggleButton1 TAG auf 0 setzen, bei ToggleButton2 TAG auf 1, usw.
    Allen ein gemeinsames Ereignis "tb" zuweisen.

    Code:
    Sub Process_Globals
        
    Dim toggleState(5As Boolean
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
        
    Activity.LoadLayout("layout1")
        
    'Startinitialisierung falls nötig
        toggleState(0) = ToggleButton1.Checked
        toggleState(
    1) = ToggleButton2.Checked
        toggleState(
    2) = ToggleButton3.Checked
        toggleState(
    3) = ToggleButton4.Checked
        toggleState(
    4) = ToggleButton5.Checked
       
    Activity.AddView(tb, 00100dip100dip)
       tb.Checked = 
    True
    End Sub

    Sub tb_CheckedChange(Checked As Boolean)
        
    Dim tb As ToggleButton = Sender
        toggleState(tb.Tag) = Checked
    End Sub
     
  9. mocca

    mocca Member

    Vielen Dank an alle , jetzt funktioniert alles :)
     
  10. mocca

    mocca Member

    @specci48

    Jetzt tritt leider wieder ein Problem auf.
    Eigentlich funktioniert alles,
    nur wenn ich mein Handy neustarte oder die App mit Exitapplication beende,
    wird die Textfarbe vom Button nicht gespeichert.


    Habe es auch erfolglos mit folgendem Code versucht.

    Code:
    Dim m As Map
    m.Initialize

    m.Put(
    "int1", Button1.Textcolor)
      m.Put(
    "int2", Button1.TextSize)
       m.Put(
    "int3", Button2.Textcolor)
        m.Put(
    "int4", Button2.TextSize)

      
    File.WriteMap(File.DirInternal, "Test.txt", m)
     
    Last edited: Jun 25, 2015
  11. specci48

    specci48 Well-Known Member Licensed User

    Das Speichern ist ja nur die eine Seite. Wie sieht denn Dein Code aus, um beim erneuten Start der Anwendung die Daten wieder zu laden?
    Und wie werden die geladenen Werte wieder den jeweiligen Button-Properties zugeordnet.
    Oder hast Du schon getestet, dass bereits die gespeicherten Daten falsch sind?
     
  12. mocca

    mocca Member

    Habe es so versucht.
    Zum speichern

    Code:
    Sub Activity_Pause (UserClosed As Boolean)

    Dim m As Map
      m.Initialize

      m.Put(
    "int1", neustart.Textcolor)
       m.Put(
    "int2", Recovery.Textcolor)
        m.Put(
    "int3", Bootloader.Textcolor)
         m.Put(
    "int4", Hotreboot.Textcolor)
          m.Put(
    "int5", Ausschalten.Textcolor)

      
    File.WriteMap(File.DirInternal, "Test.txt", m)

    End Sub


    zum laden

    Code:
    Sub Activity_Resume

    Dim m As Map
     m.Initialize

    If File.Exists(File.DirInternal, "Test.txt"Then
     m = 
    File.ReadMap(File.DirInternal,"Test.txt")


      neustart.Textcolor = m.Get(
    "int1")
        Recovery.Textcolor = m.Get(
    "int2")
         Bootloader.Textcolor = m.Get(
    "int3")
          Hotreboot.Textcolor = m.Get(
    "int4")
           Ausschalten.Textcolor = m.Get(
    "int5")

    End If
     
    Last edited: Jun 25, 2015
  13. specci48

    specci48 Well-Known Member Licensed User

    Also das Speichern und Laden sieht soweit gut aus. Machst du noch irgendetwas anderes mit der Test.txt?
    Im Anhang ist wieder ein Minimalbeispiel, dass genau deinen Code enthält und fehlerfrei funktioniert.
    Vermutlich liegt der Fehler also woanders.
     

    Attached Files:

  14. mocca

    mocca Member

    Hallo,

    ja der fehler muss ganz klar woanders liegen,nur finde ich ihn seit Tagen nicht.
    Mir fehlt es aber auch an Erfahrung.

    Hast du evt. mal Zeit und Lust dir meine App anzusehen?
    Könnte es dir mal per Mail zuschicken.

    Würde dich nicht fragen,aber ohne deine Hilfe bin ich völlig aufgeschmissen.
     
  15. specci48

    specci48 Well-Known Member Licensed User

    Schau mal in Deine "Inbox".
     
Loading...