1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. joschika77, 20.07.2009 #1
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    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

    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

    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

    @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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    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

    jop mach das - viel erfolg ;)
     

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. app entwicklung portrait landscape

    ,
  2. portrait mode programmueren