1. Nimm jetzt an unserem Geotel Note - Gewinnspiel teil - Informationen zum Note findest Du hier!
  1. Nebukad, 09.11.2011 #1
    Nebukad

    Nebukad Threadstarter Neuer Benutzer

    Moin,

    ich habe ein Problem mit der Ausrichtung der App beim Starten und komme da irgendwie nicht weiter.

    Die App soll in "SCREEN_ORIENTATION_REVERSE_PORTRAIT" ausgeführt werden. Dies klappt auch wunderbar, wenn die App aus dieser Ausrichtung heraus gestartet wird. Startet man allerdings aus dem Querformat heraus, dann stürzt die App gleich ab, weil es natürlich keine Buttons im Layout des Querformats gibt und er dann beim Setzen der onClickListener eine NullpointerException wirft. (Das Querformat benutze ich momentan nicht, die XML ist zwar da, aber nicht auf dem aktuellen Stand und wird eigentlich auch nirgendwo aufgerufen, diese soll vielleicht später mal hinzukommen).

    Im Manifest der App steht für die Activity android:screenOrientation="reversePortait".
    Beim Start der App wird zudem nochmal this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); aufgerufen und dann erst setContentView(R.layout.main) aufgerufen. (Andersherum macht auch keinen Unterschied).

    MfG
     
  2. Gastonet, 09.11.2011 #2
    Gastonet

    Gastonet Erfahrener Benutzer

    Wenn du sowieso nur den Portrait-Modus benötigst, dann kannst du den Gravitationssensor auch "abschalten" und den Portrait Modus erzwingen

    Einfach folgenden Code in die onCreate Anweisung einfügen

    Code:
    this.setRequestedOrientation(
    				ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    Das hier kann dir möglicherweise hilfreich sein.
     
  3. Nebukad, 09.11.2011 #3
    Nebukad

    Nebukad Threadstarter Neuer Benutzer

    Genau das mach ich doch, allerdings schmiert die App ab, wenn das Gerät aus dem Querformat heraus die App startet.
     
  4. Gastonet, 09.11.2011 #4
    Gastonet

    Gastonet Erfahrener Benutzer

    Ich habe das gerade getestet und bei mir schmiert nichts ab und das Layout wird im Portraitmodus geladen

    Vielleicht den "Bildschirmausrichtungscode" der Seite übernehmen und mit deinem ersetzen?
     
  5. swordi, 10.11.2011 #5
    swordi

    swordi Gewerbliches Mitglied

    "schmiert ab", ist keine phrase, die man im entwickler forum sehen will :)

    zeig den logcat, dann kann dir geholfen werden.
     
  6. Nebukad, 10.11.2011 #6
    Nebukad

    Nebukad Threadstarter Neuer Benutzer

    LogCat wirft eine NullPointerException, weil die App den Button beim Setzen des OnClickListeners nicht findet, da dieser im Layout fürs Querformat nicht existiert. Ich hab jetzt das layout-land einfach komplett aus dem Projekt entfernt, obwohl ich das nicht wollte, da ich dieses später ggf. noch nutzen wollte. Ohne layout-land Ordner funktioniert das ganze jetzt problemlos.

    Also muss die App das Querformat trotzdem beim Start laden (auch wenn nicht sichtbar), wenn man aus dem Querformat die App startet, obwohl eigentlich im Manifest und in der OnCreate-Methode das Portraitformat festgeschrieben ist, und erst danach das Hochformat.
     
  7. swordi, 10.11.2011 #7
    swordi

    swordi Gewerbliches Mitglied

    naja ich denke das liegt auf der hand ( meine vermutung halt )

    du hast dein gerät im landscape modus, startest die app. erst in deinem oncreate wird auf portrait mode gewechselt.

    1) wenn du nur portrait hast, machts keinen sinn einen layout-land ordner zu haben :)

    2) versuch mal die screenorientation direkt im manifest zu setzen. eventuell wird das dann vorher schon richtig gemacht.