Autore Topic: Lancio activity alla rotazione del device  (Letto 499 volte)

Offline ethan

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    windows 8
Lancio activity alla rotazione del device
« il: 17 Luglio 2014, 17:20:46 CEST »
0
Salve a tutti,

mi sto dedicando alla UX di un app e mi trovo a fronteggiare il seguente problema: voglio che venga lanciata un activity quando porto il dispositivo in modalità landscape. Mi spiego meglio:

modalità portrait: visualizzo una lista di elementi

modalità landscape: voglio che ruotando il dispositivo venga lanciata un activity.

Qualcuno ha idea di come si faccia a livello di codice?

Grazie in anticipo.

Offline LinkOut

  • Utente normale
  • ***
  • Post: 272
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Lancio activity alla rotazione del device
« Risposta #1 il: 17 Luglio 2014, 17:30:39 CEST »
0
Usa il metodo getRotation Display | Android Developers

Per capire che è passato in modalità landscape:
Codice (Java): [Seleziona]
Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int rotation = display.getRotation();

oppure...

Codice (Java): [Seleziona]
getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE
a quel punto fai partire l'activity:
Codice (Java): [Seleziona]
Intent i = new Intent (this,TuaActivity.class);
startActivity(i);

Offline ethan

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    galaxy nexus
  • Sistema operativo:
    windows 8
Re:Lancio activity alla rotazione del device
« Risposta #2 il: 17 Luglio 2014, 17:41:33 CEST »
0
Allora io ho il codice già scritto per ciò che avviene in modalità portrait, adesso devo creare una nuova classe per ciò che avviene in modalità landscape o basta inserire un controllo sulla posizione dello schermo all'inizio del codice che ho già scritto? In modo tale che vedendo l'orientazione venga lanciata l'una o l'altra activity.

Offline LinkOut

  • Utente normale
  • ***
  • Post: 272
  • Respect: +38
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Lancio activity alla rotazione del device
« Risposta #3 il: 18 Luglio 2014, 08:27:52 CEST »
0
Teoricamente basta scrivere il codice per avere un "catch" dell'evento.

Offline Enzozne

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    windows 7 ubuntu 12.04
Re:Lancio activity alla rotazione del device
« Risposta #4 il: 12 Agosto 2014, 16:15:42 CEST »
0
Inserisci questo in onCreate e carichi il layout a seconda della posizione dello schermo senza scrivere 2 activity diverse che fanno la stessa cosa

int display_mode = getResources().getConfiguration().orientation;

      if (display_mode == 1) {
         setContentView(R.layout.portait);
      } else {
         setContentView(R.layout.landscape);
      }