Istnieje kilka sposobów uzyskania dostępu do zmiennych lub obiektów w innych klasach lub w Działalności.
A. Baza danych
B. wspólne preferencje.
C. Serializacja obiektów.
D. Klasa, która może przechowywać wspólne dane, może być nazwana jako Wspólne narzędzia, od których zależy użytkownik.
E. Przekazywanie danych za pośrednictwem Intents i Parcable Interface.
To zależy od potrzeb projektu.
A. Database
SQLite jest Open Database źródłowy, który jest osadzony w Androidzie. SQLite obsługuje standardowe funkcje relacyjnych baz danych, takie jak składnia SQL, transakcje i przygotowane instrukcje.
Poradniki - http://www.vogella.com/articles/AndroidSQLite/article.html
B. Shared Preferencje
Załóżmy, że chcesz zapisać nazwę użytkownika. Tak więc teraz będą dwie wartości: Nazwa użytkownika, WartośćWartość.
Jak przechowywać
// Create object of SharedPreferences.
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
//now get Editor
SharedPreferences.Editor editor = sharedPref.edit();
//put your value
editor.putString("userName", "stackoverlow");
//commits your edits
editor.commit();
Korzystanie putString(), putBoolean(), putInt(), putFloat(), putLong() można zapisać żądany dtatype.
Jak pobrać
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
String userName = sharedPref.getString("userName", "Not Available");
http://developer.android.com/reference/android/content/SharedPreferences.html
C. obiektu serializacji
serlization Przedmiot jest używany, jeśli chcemy zapisać stan obiektu, aby wysłać go za pośrednictwem sieci lub możesz go użyć również do swojego celu.
fasola użyć Java i przechowywać w nim jako jeden z jego pola i zastosowania pobierające i setter dla tej
JavaBeans są klasami Java, które mają właściwości. Pomyśl o właściwościach jako zmiennych instancji prywatnych. Ponieważ są one prywatne, dostęp do nich spoza ich klasy można uzyskać tylko za pomocą metod dostępnych w klasie.Metody, które zmieniają wartość właściwości, nazywane są metodami ustawiającymi, a metody, które pobierają wartość właściwości, nazywane są metodami getter.
public class VariableStorage implements Serializable {
private String inString ;
public String getInString() {
return inString;
}
public void setInString(String inString) {
this.inString = inString;
}
}
Ustaw zmienną w sposób Ci maila za pomocą
VariableStorage variableStorage = new VariableStorage();
variableStorage.setInString(inString);
Następnie użyj obiektu Serialzation do serializacji ten obiekt, a w drugiej klasie deserializowania tego obiektu.
W przypadku serializacji obiekt może być reprezentowany jako ciąg bajtów, który zawiera dane obiektu, a także informacje o typie obiektu i typach danych przechowywanych w obiekcie.
Po zapisaniu serializowanego obiektu do pliku, można go odczytać z pliku i przekształcić z postaci szeregowej, tj. Informacje o typie i bajty reprezentujące obiekt, a jego dane można wykorzystać do odtworzenia obiektu w pamięci.
Jeśli chcesz Tutorial ten odnosi ten link
http://javawithswaranga.blogspot.in/2011/08/serialization-in-java.html
Get variable in other classes
D. CommonUtilities
można utworzyć klasę przez siebie, które mogą zawierać dane, które wspólnego często potrzebujesz w swoim projekcie.
Próbka
public class CommonUtilities {
public static String className = "CommonUtilities";
}
E. Przekazywanie danych przez zamiarów
Zapoznaj samouczek dla tej opcji przekazywania danych.
http://shri.blog.kraya.co.uk/2010/04/26/android-parcel-data-to-pass-between-activities-using-parcelable-classes/
To wszystko działało dla mnie z wyjątkiem 'new Intent (null);' było "zbyt niejednoznaczne" i musiałem zmienić to na 'new Intent();'. –
To jest po prostu świetne: D –
Warto również zauważyć, że to będzie działać tylko w tym samym kontekście.Jeśli na przykład uruchomi się działanie z fragmentu, nie będzie działać, ponieważ kod żądania będzie za każdym razem inny. Będziesz musiał użyć getActivity(). StartActivityForResult() w fragmencie. – stef