Zajmuję się tworzeniem aplikacji na Androida. Mam kilka działań w tym. I muszę mieć obiekt, który może być dostępny ze wszystkich działań. Jakieś pomysły, jak to zorganizować?Globalny obiekt aplikacji na Androida
Odpowiedz
Użyj globalnego Application
obiekt w następujący sposób:
package com.yourpackagename;
public class App extends Application {
}
W AndroidManifest.xml
:
<application android:name=".App">
Aby uzyskać do niego dostęp z Activity
:
App globalApp = (App) getApplicationContext();
Klasa App
będzie tworzone automatycznie po uruchomieniu aplikacji. Będzie on dostępny, o ile proces aplikacji jest żywy. Może działać jako globalny sklep, w którym możesz umieścić swoje rzeczy i mieć do nich dostęp przez cały okres użytkowania aplikacji.
Mam wrażenie, że w tym jest trochę literówek, ale nie wiem, które z nich poprawić!:) –
poprawiono literówki. nie krępuj się komentować, jeśli czegoś brakuje. –
Twoja początkowa definicja klasy to 'GolbalObject', ale twoje użycie to' GlobalObject' .. –
Istnieje kilka sposobów, aby to zrobić. Jeśli obiektem, który chcesz udostępnić, jest Ciąg (lub łatwo opisany za pomocą ciągu znaków), polecam Shared Preferences. Służy jako magazyn klucz-wartość do udostępniania danych w aplikacji.
Jeśli tak nie jest (tj. Przydatność napisu), można rozważyć przekazanie go jako dodatkowego z intencją, która uruchamia różne działania. Na przykład:
Intent newActivity = new Intent(CurrentActivity.class, ActivityToLaunch.class);
newActivity.putExtra("object_key", Bundle_With_Your_Object);
więcej szczegółów na temat tej strategii (szczególnie o klasie Bundle, jeśli nie jesteś zaznajomiony), chciałbym przeczytać this Android doc.
Można użyć SharedPreferences w tym przypadku:
Aby dodać lub edytować:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().putString("your_key", value).commit();
Aby wyczyścić:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
prefs.edit().clear();
Aby uzyskać wartość:
SharedPreferences prefs = this.getSharedPreferences("Cusom Name", Activity.MODE_PRIVATE);
String value = prefs.getString("your_key", "");
zakłada to, że obiektem, który chce udostępnić plakat, jest Ciąg, który może, ale nie musi być dobrym założeniem; chociaż być może najlepszym rozwiązaniem jest toString i konstruktor taki, że Object x = new Object (y.toString()); da wartość x równoważną y? – mfrankli
Myślę, że potrzebuje pewnych atrybutów obiektu zamiast prawdziwego obiektu. Przekazywanie obiektu przez intencję to kolejna dobra metoda, ale kod wysyłania i obsługi jest złożony. – PhatHV
Najpierw utwórz klasę o nazwie MasterActivity, która rozszerza działanie i definiuje obiekt globalny.
public class MasterActivity extends Activity
{
public Object mObject;
}
Następnie trzeba rozszerzyć swoją główną klasę aktywności z MasterActivity podoba:
// 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();
}
}
W ten sposób, będzie można korzystać z obiektu we wszystkich swoich działaniach po prostu poprzez rozszerzenie MasterActivity zamiast aktywności.
- 1. ReferenceError i globalny obiekt
- 2. C++ obiekt globalny
- 3. Ustaw globalny obiekt w błyszczące
- 4. globalny ADBannerView w aplikacji na iPhone'a
- 5. Wdrażanie aplikacji na Androida
- 6. Jak stworzyć globalny obiekt w C# biblioteki
- 7. USSD na Androida z aplikacji
- 8. ExceptionInInitializerError w aplikacji na Androida?
- 9. Aktualizacja aplikacji Xamarin na Androida
- 10. Ionic 2 - globalny NavBar dla aplikacji
- 11. Jak uruchamiać aplikacje na Androida w mojej aplikacji na Androida?
- 12. Globalny dostawca usług Angular2
- 13. Jak zarządzać wieloma środowiskami podczas tworzenia aplikacji na Androida?
- 14. Czy obiekt JSON jest globalny w pliku Node.js?
- 15. jak stworzyć PRAWDZIWY obiekt globalny w wersji 8?
- 16. Android Tworzenie aplikacji na Androida przy użyciu Androida
- 17. Jak odsłonić obiekt globalny, taki jak @User w widoku brzytwy?
- 18. Budowanie aplikacji na Androida bez XML
- 19. Jak zrobić kopię recenzji aplikacji na Androida?
- 20. Roboto czcionka w mojej aplikacji na Androida
- 21. Nawigacja wstecz w aplikacji Webview na Androida
- 22. Jak zmienić domyślną czcionkę aplikacji na Androida?
- 23. Kiedy używać Dagger w aplikacji na Androida?
- 24. Wiele pakietów w aplikacji na Androida
- 25. Przywróć stos aplikacji na Androida z tła
- 26. Aktualizacja aplikacji na konsolę dla programistów Androida
- 27. Jak zmienić motyw w aplikacji na Androida?
- 28. Nie można wyeksportować aplikacji na Androida (Eclipse)
- 29. Jak wyczyścić SharedPreferences spoza aplikacji na Androida
- 30. lokalizowanie zasobów surowców w aplikacji na Androida
co masz na myśli przez "obiekt globalny"? Jeśli masz na myśli klasę, która jest dostępna w całej aplikacji, spójrz na ten wątek http://androidforums.com/developer-101/124278-global-objects.html – evilone
W mojej sytuacji musi to być obiekt jakiejś klasy. We wszystkich działaniach muszę używać metod tego obiektu, dodawać dane do pól obiektu i tak dalej. – mmmaaak