1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

JavaScript und Window Title setzen

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von mario1988, 01.04.2011.

  1. mario1988, 01.04.2011 #1
    mario1988

    mario1988 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    01.04.2011
    Ich hätte eine Frage bezüglich des JavaScriptInterfaces:
    Ist es möglich über eine JS-Funktion in einem WebView den window Title des Activity zu ändern?

    thx 4 help
    m4ri0
     
  2. funcoder, 02.04.2011 #2
    funcoder

    funcoder Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Mh schau dir mal das Beispiel an.
    Hier wird das Binding von Javascript Code an deine Android Activity anhand einem "Toast-Sample" erklärt. (Mitte der Seite)
    Du müsstest nur das Toast Sample abwandeln bzw. den String in deinem Interface als Activity Title setzen.
     
  3. mario1988, 02.04.2011 #3
    mario1988

    mario1988 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    01.04.2011
    Danke für die Antwort!

    Ja, in der Form hab ich es probiert.
    Allerdings bekomme ich eine UnsupportedOperationException, wenn ich versuche den Title zu setzen.
    Code:
        private class MyJavaScriptInterface {
            
            private MyJavaScriptInterface() {
            }
            
            /* JavaScript-Methode, die auf der XHTML-Seite aufgerufen wird */
            public void setTitle(String text) {
                Atomic.this.setTitle(text);
            }
        }
    
    Komme ich irgendwie von dem Context zum Title?
    Weil offensichtlich funktioniert das mit dem Aufruf von setTitle hier in der Art und Weise nicht.

    thx 4 help
     
  4. funcoder, 02.04.2011 #4
    funcoder

    funcoder Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Ah okay, dass ist das Problem :)
    Mh probier einfach mal folgendes:
    Code:
    getWindow().setTitle(text);
     
  5. mario1988, 02.04.2011 #5
    mario1988

    mario1988 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    01.04.2011
    Kommt leider die gleiche Exception...
     
  6. mario1988, 02.04.2011 #6
    mario1988

    mario1988 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    01.04.2011
    Wobe ich eines nicht verstehe:
    Das schließen des Activity funktioniert aus JS heraus:
    Code:
    /* JavaScript-Interface */
        private class MyJavaScriptInterface {
            Context mContext;
            
            private MyJavaScriptInterface(Context c) {
                this.mContext = c;
            }
            
            /* JavaScript-Methoden, die auf der XHTML-Seite aufgerufen werden */
            @SuppressWarnings("unused")
            public void setTitle(String text) {
                Activity a = (Activity)mContext;
                //a.setTitle(text);
                a.getWindow().setTitle(text);
            }
            
            @SuppressWarnings("unused")
            public void close() {
                Activity a = (Activity)mContext;
                a.finish();
            }
        }
    
     
  7. mario1988, 02.04.2011 #7
    mario1988

    mario1988 Threadstarter Neuer Benutzer

    Beiträge:
    5
    Erhaltene Danke:
    0
    Registriert seit:
    01.04.2011
    Lösung:
    Da nur der Thread, der "Die View-Hierarchie aufgebaut hat", diese auch verändern darf, braucht man in diesem Fall, um den Title des Activity von hier zu setzen, einen Handler, über diesen man eine Message von einem zum anderen Thread schicken kann.

    m4ri0
     

Diese Seite empfehlen