Sto sviluppando un'applicazione Android. Ho alcune attività in esso. E devo avere un oggetto che può essere disponibile da tutte le attività. Qualche idea su come organizzarlo?Oggetto globale dell'app Android
risposta
Utilizzare l'Application
oggetto globale nel modo seguente:
package com.yourpackagename;
public class App extends Application {
}
In AndroidManifest.xml
:
<application android:name=".App">
di accedervi da un Activity
:
App globalApp = (App) getApplicationContext();
La classe App
sarà istanziato automaticamente all'avvio dell'app. Sarà disponibile fino a quando il processo di applicazione è vivo. Può agire come un negozio globale nel quale puoi mettere le tue cose e averne accesso per tutta la durata dell'applicazione.
Mi sembra che ci siano errori di battitura in questo, ma non so quali correggere!:) –
corretti errori di battitura. sentiti libero di commentare se mi manca qualcosa. –
La definizione della classe iniziale è 'GolbalObject', ma il tuo utilizzo è' GlobalObject' .. –
Ci sono alcuni modi per farlo. Se l'oggetto che si desidera condividere è una stringa (o facilmente descritta con una stringa), raccomanderei lo Shared Preferences. Serve come un negozio di valore chiave per la condivisione di dati all'interno di un'applicazione.
Se questo non è il caso (cioè l'idoneità di una stringa), potresti considerare di passarlo come un extra con l'Intent che lancia le tue varie attività. Per esempio:
Intent newActivity = new Intent(CurrentActivity.class, ActivityToLaunch.class);
newActivity.putExtra("object_key", Bundle_With_Your_Object);
Per maggiori dettagli su questa strategia (in particolare sulla classe Bundle, se non hai familiarità), leggevo this Android doc.
È possibile utilizzare SharedPreferences in questo caso:
Per aggiungere o modificare:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().putString("your_key", value).commit();
Per cancellare:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().clear();
per ottenere il valore:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
String value = prefs.getString("your_key", "");
ciò presuppone che l'oggetto che il manifesto desidera condividere sia una stringa, che può essere o non essere una buona ipotesi; sebbene, forse la soluzione "migliore" sia avere un toString e un costruttore tale che Object x = new Object (y.toString()); darà una x che è equivalente a y? – mfrankli
Penso che abbia bisogno di alcuni attributi di un oggetto invece di un oggetto reale. Passare l'oggetto su un intent è un altro buon modo, ma il codice per inviarlo e gestirlo è complesso. – PhatHV
Innanzitutto, creare una classe denominata MasterActivity che estenda Activity e definisca il proprio oggetto globale.
public class MasterActivity extends Activity
{
public Object mObject;
}
Quindi, è necessario estendere la classe di attività principale con il tuo MasterActivity simile al primo:
// your main activity
public class MainActivity extends MasterActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// you can now use mObject in your main class
mObject.yourmethod();
}
}
In questo modo, sarete in grado di utilizzare l'oggetto in tutte le vostre attività semplicemente estendendo MasterActivity invece di attività.
- 1. Impostare oggetto globale in Shiny
- 2. Ricerca globale in Android
- 3. Nodejs: utilizzare eventEmitter oggetto a livello globale
- 4. JSONRequest è un oggetto Javascript globale?
- 5. Variabile globale Android non funzionante nel servizio
- 6. Escludere un tipo di oggetto specifico dall'ambiente globale
- 7. XAML Binding: associazione alle proprietà di un oggetto "globale"
- 8. Come ottenere la posizione globale/mondiale di un oggetto figlio?
- 9. Capire la persistenza oggetto globale in Python WSGI apps
- 10. Come creare oggetto globale in una libreria C#
- 11. Oggetto Javascript globale che gestisce il contesto dell'oggetto
- 12. Android JSON oggetto
- 13. Android: Scarica oggetto
- 14. oggetto applicazione Android
- 15. ReferenceError e l'oggetto globale
- 16. variabile globale non ha portata globale
- 17. C/C++ globale vs statico globale
- 18. Creazione di Android Location oggetto
- 19. Android - Trova oggetto per ID
- 20. Menu Android Oggetto Layout personalizzato
- 21. Aggiungi metodo in Android Copia/Incolla Menu contestuale globale?
- 22. apache globale
- 23. Android java.lang.IllegalMonitorStateException: oggetto non bloccato da thread before wait()
- 24. Variabile globale in Qt, come?
- 25. Non inquinante globale con angularjs
- 26. Un altro hook globale riguarda il mio hook globale
- 27. Stato globale nel modulo Python
- 28. Android: come nascondere un oggetto ListView
- 29. Oggetto Browser all'interno di Android Studio
- 30. Android Salva oggetto come blob in sqlite
cosa intendi con "oggetto globale"? Se intendi una classe disponibile in tutta l'applicazione, guarda questa discussione http://androidforums.com/developer-101/124278-global-objects.html – evilone
Nella mia situazione deve essere un oggetto di qualche classe. In tutte le attività devo usare i metodi di questo oggetto, aggiungere dati nei campi dell'oggetto e così via. – mmmaaak