Chcę zapisać wartość czasu i muszę ją pobrać i edytować. Jak mogę SharedPreferences
to zrobić?
android
sharedpreferences
Muhammad Maqsoodur Rehman
źródło
źródło
Odpowiedzi:
Aby uzyskać wspólne preferencje, użyj następującej metody:
Aby przeczytać preferencje:
Aby edytować i zapisać preferencje
Przykładowy katalog Android SDK zawiera przykład pobierania i przechowywania wspólnych preferencji. Znajduje się w:
Edytuj ==>
Zauważyłem, że ważne jest, aby również napisać różnicę między
commit()
iapply()
tutaj.commit()
powróttrue
jeśli wartość zapisana pomyślnie inaczejfalse
. Zapisuje wartości do SharedPreferences synchronicznie .apply()
został dodany w wersji 2.3 i nie zwraca żadnej wartości ani w przypadku sukcesu, ani niepowodzenia. Natychmiast zapisuje wartości do SharedPreferences, ale uruchamia asynchroniczne zatwierdzanie. Więcej szczegółów jest tutaj .źródło
this.getSharedPreferences
daje mi następujący błąd:The method getSharedPreferences(String, int) is undefined for the type MyActivity
Aby przechowywać wartości we wspólnych preferencjach:
Aby pobrać wartości z wspólnych preferencji:
źródło
Map<DateTime, Integer>
?Aby edytować dane z
sharedpreference
Aby pobrać dane z
sharedpreference
Edytować
Wziąłem ten fragment z próbki API Demo. Miał
EditText
tam pudełko. W tymcontext
nie ma required.I am komentując to samo.źródło
Pisać :
Czytać :
źródło
Najprostszy sposób:
Zapisać:
Aby pobrać:
źródło
Ustawianie wartości w preferencjach:
Pobierz dane z preferencji:
więcej informacji:
Korzystanie z preferencji wspólnych
Wspólne preferencje
źródło
Singleton Shared Preferences Class. może w przyszłości pomóc innym.
Wystarczy zadzwonić
SharedPref.init()
naMainActivity
razAby zapisać dane
Aby odczytać dane
źródło
Do przechowywania informacji
Aby zresetować preferencje
źródło
Jeśli tworzysz dużą aplikację z innymi programistami w swoim zespole i zamierzasz wszystko dobrze zorganizować bez rozproszonego kodu lub różnych instancji SharedPreferences, możesz zrobić coś takiego:
W swojej działalności możesz w ten sposób zapisać SharedPreferences
i możesz w ten sposób odzyskać swoje SharedPreferences
źródło
W dowolnej aplikacji istnieją domyślne preferencje, do których można uzyskać dostęp za pośrednictwem
PreferenceManager
instancji i powiązanej z nią metodygetDefaultSharedPreferences(Context)
.Za pomocą
SharedPreference
instancji można uzyskać wartość int dowolnej preferencji za pomocą getInt (klucz String, int defVal) . Preferencją, która nas interesuje w tym przypadku, jest przeciwna.W naszym przypadku możemy zmodyfikować
SharedPreference
instancję w naszym przypadku za pomocą funkcji edit () i użyć opcjiputInt(String key, int newVal)
Zwiększyliśmy liczbę naszych aplikacji, które trwają dłużej niż aplikacja i są odpowiednio wyświetlane.Aby dodatkowo to zilustrować, uruchom ponownie i ponownie aplikuj, zauważysz, że liczba ta wzrośnie za każdym razem, gdy ponownie uruchomisz aplikację.
PreferencesDemo.java
Kod:
main.xml
Kod:
źródło
Proste rozwiązanie, w jaki sposób przechowywać wartość logowania
SharedPreferences
.Możesz rozszerzyć
MainActivity
klasę lub inną klasę, w której będziesz przechowywać „wartość czegoś, co chcesz zachować”. Umieść to w klasach pisarzy i czytelników:Oto odpowiednio
InputClass
wejście iOutputClass
klasa wyjścia.Teraz możesz użyć go w innym miejscu, na przykład w innej klasie. Poniżej znajduje
OutputClass
.źródło
Przechowuj w SharedPreferences
Pobierz w SharedPreferences
Uwaga: „temp” to nazwa wspólnych preferencji, a „nazwa” to wartość wejściowa. jeśli wartość nie zostanie zakończona, zwróci null
źródło
Edytować
Czytać
źródło
Podstawową ideą SharedPreferences jest przechowywanie rzeczy w pliku XML.
Zadeklaruj ścieżkę do pliku xml. (Jeśli nie masz tego pliku, Android go utworzy. Jeśli masz ten plik, Android będzie miał do niego dostęp).
Zapisz wartość we Wspólnych preferencjach
preference_file_key
to nazwa udostępnionych plików uprzywilejowane. I1010101
jest to wartość trzeba przechowywać.apply()
w końcu należy zapisać zmiany. Jeśli pojawi się błąd zapply()
, zmień go nacommit()
. Więc to zdanie alternatywne brzmiCzytaj z preferencji wspólnych
lsp
będzie,-1
jeślipreference_file_key
nie ma wartości. Jeśli „plik_ preferencji_klucz” ma wartość, zwróci jej wartość.Cały kod do pisania to
Kod do odczytu to
źródło
Możesz zapisać wartość za pomocą tej metody:
Za pomocą tej metody możesz uzyskać wartość z SharedPreferences:
Oto
prefKey
klucz użyty do zapisania określonej wartości. Dzięki.źródło
Tutaj
mSaved
może być dowolnyTextView
lubEditText
skąd możemy wyodrębnić ciąg. możesz po prostu podać ciąg. Tutaj tekst będzie kluczem, który przechowuje wartość uzyskaną zmSaved
(TextView
lubEditText
).Ponadto nie ma potrzeby zapisywania pliku preferencji przy użyciu nazwy pakietu, tj. „Com.example.app”. Możesz podać swoje preferowane imię. Mam nadzieję że to pomoże !
źródło
Istnieje wiele sposobów, w jakie ludzie zalecają korzystanie z SharedPreferences . Zrobiłem tutaj projekt demo . Kluczowym punktem w przykładzie jest użycie ApplicationContext i pojedynczego obiektu sharedpreferences . To pokazuje, jak korzystać z SharedPreferences z następującymi funkcjami: -
Przykład użycia jak poniżej: -
Pobierz kod źródłowy tutaj, a szczegółowe API można znaleźć tutaj na developer.android.com
źródło
Najlepsza praktyka w historii
Utwórz interfejs o nazwie PreferenceManager :
Jak używać z Aktywnością / Fragmentem :
Uwaga: zamień klucz SharedPreference na SP_TITLE .
Przykłady:
Przechowuj ciąg w shareperence :
Pobierz ciąg z shareperence :
Mam nadzieję, że to ci pomoże.
źródło
Aby przechowywać wartości we wspólnych preferencjach:
Aby pobrać wartości z wspólnych preferencji:
źródło
zapisać
wycofać:
źródło
Piszę klasę pomocnika dla wspólnych preferencji:
źródło
Zastosuj ten przykład prosty, przejrzysty i sprawdzony
źródło
Korzystając z tej prostej biblioteki , oto jak wykonywać połączenia do SharedPreferences ..
źródło
Chciałem tutaj dodać, że większość fragmentów tego pytania będzie miała coś w rodzaju MODE_PRIVATE podczas korzystania z SharedPreferences. Cóż, MODE_PRIVATE oznacza, że wszystko, co napiszesz w tej wspólnej preferencji, może być odczytane tylko przez twoją aplikację.
Bez względu na klucz przekazywany do metody getSharedPreferences (), android tworzy plik o tej nazwie i przechowuje w nim dane preferencji. Pamiętaj również, że getSharedPreferences () powinno być używane, gdy zamierzasz mieć wiele plików preferencji dla aplikacji. Jeśli zamierzasz używać jednego pliku preferencji i przechowywać w nim wszystkie pary klucz-wartość, użyj metody getSharedPreference (). To dziwne, dlaczego wszyscy (w tym ja) po prostu używają smaku getSharedPreferences (), nawet nie rozumiejąc różnicy między powyższymi dwoma.
Poniższy samouczek wideo powinien pomóc https://www.youtube.com/watch?v=2PcAQ1NBy98
źródło
Prosta i bezproblemowa biblioteka :: „Android-SharedPreferences-Helper”
Lepiej późno niż wcale: stworzyłem bibliotekę „Android-SharedPreferences-Helper”, aby zmniejszyć złożoność i wysiłek związany z używaniem
SharedPreferences
. Zapewnia także rozszerzoną funkcjonalność. Kilka rzeczy, które oferuje to:Dość proste! W przeciwieństwie do domyślnego sposobu (podczas korzystania z klasy SharedPreferences) NIE będziesz musiał dzwonić
.edit()
i.commit()
zawsze.Otóż to! Twoje wartości są przechowywane we wspólnych preferencjach.
Ponownie, tylko jedno proste wywołanie metody z nazwą klucza.
Sprawdź szczegóły rozszerzonej funkcjonalności, instrukcji użytkowania i instalacji itp. Na stronie repozytorium GitHub .
źródło
musisz użyć SharedPreferences w AdapterClass lub innym. tym razem po prostu skorzystaj z tej deklaracji i użyj tego samego tyłka powyżej.
dla wartości ciągu lub wartości logicznej
pobierz dane tak samo jak powyżej
źródło
2. dla Przechowywania we wspólnej preferencji
2. dla pobierania tego samego zastosowania
źródło
Tutaj utworzyłem klasę Pomocnika, aby używać preferencji w Androidzie.
To jest klasa pomocnicza:
źródło
Do przechowywania i pobierania zmiennych globalnych w sposób funkcjonalny. Aby przetestować, upewnij się, że masz elementy Textview na swojej stronie, usuń komentarz z dwóch wierszy kodu i uruchom. Następnie skomentuj ponownie dwie linie i uruchom.
Tutaj identyfikatorem TextView jest nazwa użytkownika i hasło.
W każdej klasie, w której chcesz jej użyć, dodaj te dwie procedury na końcu. Chciałbym, aby ta procedura była procedurami globalnymi, ale nie wiem jak. To działa.
Zmienne są dostępne wszędzie. Przechowuje zmienne w „MyFile”. Możesz to zmienić na swój sposób.
Nazywasz to za pomocą
zmienna nazwa użytkownika zostanie wypełniona „frankami”, a hasło „! 2 # 4%”. Nawet po ponownym uruchomieniu są dostępne.
i odzyskujesz go za pomocą
poniżej całego kodu mojego grid.java
poniżej znajdziesz elementy widoku tekstu
źródło
Stworzyłem klasę pomocnika, aby ułatwić moje życie. Jest to klasa ogólna i ma wiele metod, które są powszechnie stosowane w aplikacjach, takich jak Preferencje wspólne, Ważność e-maila, Format daty i godziny. Skopiuj tę klasę do swojego kodu i uzyskaj dostęp do jej metod tam, gdzie potrzebujesz.
źródło