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

PORTRAIT & LANDSCAPE Modus

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von joschika77, 20.07.2009.

  1. joschika77, 20.07.2009 #1
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hallo, wie kann man am einfachsten zwischen PORTRAIT & LANDSCAPE Modus umschalten? Ich habe eine Activity die den Portaitmodus repräsentiert & möchte einfach zu meiner selbst erstellten z.B. landcape.xml wechseln. Ist das so überhaupt möglich?
    Ich habe folgende Methode dazu überschrieben:
    Code:
    public void onConfigurationChanged(Configuration newConfig)
    und in der manifest was eingetragen.

    Wie ist der genaue Ablauf?

    MfG
     
  2. swordi, 20.07.2009 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    die onConfigurationChanged wird aufgerufen, wenn du zb das händy drehst, oder die tastatur öffnest ( sofern eine vorhanden ;) )

    wenn du absichtlich den modus ändern willst, dann gibts ne methode, die heißt setOrientation(xx)
     
  3. Lemonbaby, 20.07.2009 #3
    Lemonbaby

    Lemonbaby Neuer Benutzer

    Beiträge:
    17
    Erhaltene Danke:
    0
    Registriert seit:
    13.07.2009
    Dafür ist auch der OrientationEventListener verfügbar, welcher NUR
    auf bei Änderung der Displayausrichtung reagiert. Abfangen muss
    man hier nur den Sonderfall des flach liegenden Handys (resultiert
    in Rückgabe des Werts ORIENTATION_UNKNOWN). Im Gegensatz
    zum onConfigurationChanged Listener muss man nicht eine ganze
    Configuration auf Änderungen auswerten, was sich positiv in der
    Performance niederschlagen sollte.

    OrientationEventListener | Android Developers
     
  4. joschika77, 20.07.2009 #4
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    @swordi: Ja ne das weiß ich, aber wie lade ich bei Tastatur aufklappen z.B eine neue xml Datei? Also das müßte ich theoretisch in der onConfigurationChanged Methode machen. Oder wie is das?
     
  5. swordi, 20.07.2009 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    das passiert eigentlich automatisch

    du musst nur die xml für landscape in den ordner layout-land legen

    dann werden diese geladen
     
  6. joschika77, 20.07.2009 #6
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Also ich habe nur einen layout Ordner. Dort sind alle *.xml Dateien drin die ich habe. Muss ich in diesen Ordner noch einen anlegen?
     
  7. miracle2k, 21.07.2009 #7
    miracle2k

    miracle2k Android-Hilfe.de Mitglied

    Beiträge:
    89
    Erhaltene Danke:
    15
    Registriert seit:
    03.07.2009
    Du legst einen Ordner res/layout-land an. Du kannst auch res/drawables-port anlegen. Oder res/values-de-port-92dpi/. Es werden jeweils automatisch die Resources verwendet, bei denen am meisten Angaben übereinstimmen.

    Mehr Informationen:

    Resources and Internationalization | Android Developers
     
  8. joschika77, 21.07.2009 #8
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Also den Ordner res/layout-land habe ich angelegt. Und meine *.xml dort reingepackt. Ich habe jetzt sozusagen 2 layout Ordner. Also den res/layout, wo meine normalen xml's drin sind &
    res/layout-land wo eben die ich sage mal veränderte xml drin ist. Ist das soweit richtig? Kann eigentlich nicht weil es geht nicht. Ich glaube ich verstehe was falsch hier. :confused:
     
  9. swordi, 21.07.2009 #9
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    jop so ist es richtig

    hab ich auch immer so gemacht.

    res
    main.xml
    res-land
    main.xml

    dazu darfst du aber jetzt den orientation change nicht mehr abfangen, sonst reagiert das hier nicht
     
  10. joschika77, 21.07.2009 #10
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Du meinst die Methode
    Code:
    public void onConfigurationChanged(Configuration newConfig)
    ?

    Die habe ich mal auskommentiert & leider gehts trotzdem nicht. Im Ordner res/layout liegen sämtliche xml Dateien, unter anderem die(bei mir heisst die so) main_320x480.xml. Nun habe ich den 2. Ordner angelegt res/layout-land & habe die main_320x480.xml kopiert. Dann habe ich die Datei ein wenig verändert um etwas visuelles zu haben. Dorf die Datei nur main heißen oder so?
     
  11. swordi, 21.07.2009 #11
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    nein völlig egal wie sie heißt

    du lädst sie ja mit setContentView

    in der manifest datei hast auch nix mehr stehen?
     
  12. joschika77, 21.07.2009 #12
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    In der main.java lade ich die so
    Code:
    public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main_320x480_portrait);  
            /*..irgendwas....*/
    }
    
    So nun schalte ich um(ich teste am Emu (STRG+F12)) und nix passiert. Müßte die setContentView doch nochmal irgendwo aufrufen. Der weiß doch gar nicht welche Datei er nehmen soll oder was? Seltsam! Was meinst mit der mainfest?
     
  13. swordi, 21.07.2009 #13
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ja wenn du auf landscape umschaltest wird die onCreate ja wieder aufgerufen, dann nimmt er die richtige xml aus dem layout-land ordner

    hast irgendwelche einträge zu orientation oder configuration in der manifest?? die müssen alle weg
     
  14. joschika77, 21.07.2009 #14
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hab nur
    Code:
    android:configChanges="orientation|keyboardHidden"
    drin. Wenn ichs rausnehme stürzt er beim Tastatur-Öffnen ab.
     
  15. swordi, 21.07.2009 #15
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    ja das solltest du rausnehmen, glaub ich

    dann dem absturz nach gehen, muss an irgendwas anderem liegen dann
     
  16. joschika77, 21.07.2009 #16
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hmmm ich arbeite noch mit sqlite. Und bei der destroy() Methode schliesse ich die Connection. Also wenn ich wieder bei der
    Code:
    setContentView(R.layout.main_320x480);
    bin und weiter debugge geht SQLiteCursor.class auf und dort steht Class File Editor Source not found und noch anderer Kram. Mach ich was falsch beim DB schliessen? Er schmeißt ne uncaught exception thrown by finalizer.
     
  17. swordi, 21.07.2009 #17
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    kann deinen beschreibungen nicht so ganz folgen.

    aber der fehler liegt nicht mehr mit der orientierung des screens zusammen, das sollte jetzt dann funktionieren
     
  18. joschika77, 21.07.2009 #18
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Ok Thx euch! Werde dann mal weiter nach dem SQLite Fehler suchen. Falls ich nicht weiter komme mache ich ein neues Thema auf.
     
  19. swordi, 21.07.2009 #19
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    jop mach das - viel erfolg ;)
     

Diese Seite empfehlen