Autore Topic: Recuperare Id layout attivo  (Letto 873 volte)

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Recuperare Id layout attivo
« il: 03 Settembre 2010, 16:22:07 CEST »
0
Questa volta la domanda è breve

ho questo create della mia activity:
Codice (Java): [Seleziona]
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
}

ho cercato inutilmente un metodo getContentView() ma niente da fare

Ho bisogno di recuperare l'id del layout attualmente settato nella mia activity...come posso fare?

Grazie

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Recuperare Id layout attivo
« Risposta #1 il: 03 Settembre 2010, 17:56:29 CEST »
0
se intendi l'id del layout, è questo :    R.layout.main

se invece (probabilmente) intendi il linearlayout/relativelayout/ecc  alla radice del main.xml , allora devi dare un id a quel layout (proprio come fai per le textview) e poi "linkarlo" con findViewById
« Ultima modifica: 03 Settembre 2010, 18:00:10 CEST da Qlimax »

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Recuperare Id layout attivo
« Risposta #2 il: 03 Settembre 2010, 20:12:16 CEST »
0
No evidentemente mi sono spiegato male

Nella mia activity cambio 2 o 3 layout

Ad un certo punto voglio riuscire a capire qual è il layout attualmente visualizzato, ottenendo magari l'id (che in quel caso è si R.layout.main)

Ma voglio ottenerlo da codice

Un metodo quindi che mi restituisca R.layout.main


Grazie

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Recuperare Id layout attivo
« Risposta #3 il: 03 Settembre 2010, 20:36:12 CEST »
+1
non ho trovato nulla di simile...
al momento potresti fare così:
Codice (Java): [Seleziona]
public class Demo extends Activity {
    int mCurrentLayoutId=-1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);        
    }
   
    @Override
    public void setContentView(int layoutResID) {
        mCurrentLayoutId=layoutResID;
        super.setContentView(layoutResID);
    }
   
    private int getContentView(){
        return mCurrentLayoutId;
    }

}

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Recuperare Id layout attivo
« Risposta #4 il: 03 Settembre 2010, 20:43:11 CEST »
0
Si difatti avevo già adottato una soluzione simile
Speravo esistesse una soluzione più pulita

Grazie cmq

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Recuperare Id layout attivo
« Risposta #5 il: 03 Settembre 2010, 20:59:21 CEST »
0
la soluzione pulita è creare un activity per ogni layout

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Recuperare Id layout attivo
« Risposta #6 il: 03 Settembre 2010, 21:04:41 CEST »
0
Ah è meglio? anche in termini di prestazioni intendo?
Scusa ma io sono nuovo infatti un'altra curiosità avrei....

nel codice che hai scritto

Codice (Java): [Seleziona]
...
int mCurrentLayoutId=-1;
...

Vedo che fai iniziare il nome della variabile con la lettera 'm'
E' solo una convenzione o ha un significato?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Recuperare Id layout attivo
« Risposta #7 il: 03 Settembre 2010, 21:24:16 CEST »
0
mettere "m" davanti alle variabili è solo una convenzione.

questo si fa per aver sempre chiaro che si tratta di una variabile a livello di classe. È per  evitare di usare il this



ti faccio un esempio

Codice (Java): [Seleziona]
int width;

public void setWidth(int width){

this.width=width;

}


Codice (Java): [Seleziona]
int mWidth;

public void setWidth(int width){

mWidth=width;

}





per quanto riguarda invece il fatto di creare per ogni layout un activity.
facendo in questo modo, resti in linea con il comportamento standard delle applicazioni android:

tasto back torni nel layout precedente . tasto home vai alla home e quando ritorni nella applicazione ti ributta sull ultima activity. non penso sia nè più nè meno performante...


« Ultima modifica: 03 Settembre 2010, 21:25:49 CEST da Qlimax »

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Recuperare Id layout attivo
« Risposta #8 il: 03 Settembre 2010, 21:30:26 CEST »
0
ok grazie stò modificando il tutto per fare in quel modo grazie 1000 :)

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Recuperare Id layout attivo
« Risposta #9 il: 03 Settembre 2010, 21:39:48 CEST »
0
Dato che ti vedo moooolto più esperto di me ti chiedo anche questa

Nella mia applicazione...alla esecuzione vedo in alto una barra grigia con scritto il nome dell'App_name

C'è modo di toglierla....in modo di utilizzare quello spazio per altro?

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Recuperare Id layout attivo
« Risposta #10 il: 03 Settembre 2010, 21:50:45 CEST »
0
Codice (Java): [Seleziona]
requestWindowFeature(Window.FEATURE_NO_TITLE);

Offline giannign1

  • Utente junior
  • **
  • Post: 85
  • Respect: +2
    • chiedetelo_se_lo_volete
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    giannign1
  • Sistema operativo:
    Windows 7
Re:Recuperare Id layout attivo
« Risposta #11 il: 04 Settembre 2010, 13:48:42 CEST »
0
Grazie 1000