Android: il passaggio di dati tra le viste
-
30-09-2019 - |
Domanda
Nel mio app Android, ho due classi di visualizzazione personalizzato - PortraitClass e LandscapeClass. Entrambi fanno la stessa cosa. Sul esecuzione l'applicazione, la classe di visualizzazione recupera alcune immagini provenienti da uno SDCard e maniputlates poi (skew, ecc) e li visualizza. L'unica differenza tra le due classi è che il layout di immagini è leggermente diversa sullo schermo.
Ho due file display.xml (una sotto cartella di layout e l'altro sotto il layout-terra). Quello sotto la cartella di layout aggiunge ritratto e l'altro aggiunge la classe Paesaggio.
Il cambiamento di orientamento, vorrei inviare informazioni (numeri di immagine e pochi bitmap) da una classe all'altra in modo da non dover prendere tutte le bitmap di nuovo e anche in modo che io espongo quelli che venivano visualizzati.
Trovo la cosa tipo Parcelable di confondere. Ho provato seguente this_example , ma notato che in onRestoreInstance, il Parcelable ha nullo per il "mSuperState" e ottengo un ClassCastException @ " ss savedState = (savedState) stato". Il numero intero (Numero d'immagine) che sto cercando di pass è lì. Non sono sicuro di quello che sto facendo male.
Soluzione
È possibile utilizzare un Singleton mondiale nella classe Application. Ad esempio, un "AssetManager" è disponibile qui:
public class YourApplication extends Application {
public AssetManager assetManager = new AssetManager();
@Override
public void onCreate()
{
super.onCreate();
}
}
È quindi possibile chiamare da un'altra attività:
YourApplication application = ((YourApplication ) this.getApplication());
application.assetManager.someFunction();
Altri suggerimenti
Non sono sicuro se questo è quello che stai cercando, ma la mia roba funziona sempre nel cambiamento dell'orientamento con onCreate (Bundle savedInstanceState). Il mio è tutto il testo in caselle di modifica di testo anche se così non sono sicuro di come sarebbe lavorare per voi.
Controlla anche questo fuori circa a metà strada verso il basso in "Persistente Stato Informazioni Durante Configuration Change" http://www.devx.com/wireless/Article/40792/1954