Android

Lưu trữ dữ liệu với Shared Preferences trong Android

Giới thiệu

Trong Android có khác nhiều các lưu trữ dữ liệu với nhiều mục đích khác nhau. Ví dụ các bạn có thể sử dụng SQLite để lưu trữ các data dưới dạng table hay nói cách khác chính là databasse, lưu trữ file ở Internal Storage, External Storeage. Hoặc có thể lưu trữ dữ liệu trên server và thông qua webservice để thao tác với dữ liệu đó. Nhưng trong bài viết này tôi sẽ hướng dẫn một các lưu trữ đơn giản và dễ nhất trong Android, đó là sử dụng Shared Preferences.

Shared Preferences là gì

Shared Preferences là một cách lưu trữ những dữ liệu dạng nguyên thuỷ (bool, int, float, double, String) trong android dưới dạng file xml với những cặp key – value. Ví dụ như lưu trữ high score của game…

Để làm việc với Shared Preferences thì Android SDK có cung cấp cho chúng ta hai class chính đó là SharedPreferencesSharePreferences.Editor.

Lưu trữ và lấy dữ liệu với Shared Preferences

Tạo SharedPerferences

Đối số SHARE_PREFERENCES_NAME là một String. Bạn chỉ cần nhập tên file thôi chứ không cần nhập đuôi file .xml. Vì mặc định sẽ có đuôi là .xml.

Lưu trữ

Để lưu trữ data chúng ta cần tạo một đối tượng Editor từ sharedPreferences đã tạo ở tên bằng cách:

Sau đó sử dụng các phương thức có tiền tố putX(String key, value) để lưu trữ cặp key – value.

Sau khi put các giá trị thì chúng ta gọi phương thức editor.apply(); hoặc editer.commit(); để tiến hành ghi các giá trị ở trên xuống ứng dụng dưới dạng file .xml.

File  .xml được lưu có đường dẫn như sau:

Lưu ý: Nếu các bạn đã put data mà không gọi phương thức apply() hoặc commit() thì những thay đổi này vẫn không được ghi xuống file .xml. Vì vậy hãy nhớ rằng nếu có thay đổi thì thì phải gọi phương thức apply() hoặc commit() để lưu trữ những thay đổi đó.

Ví dụ:

Nhận data từ SharedPreferences

Để nhận dữ liệu từ SharedPreference chúng ta không cần tạo đối tượng Editor mà có thể sử dụng ngay chính đối tượng sharedPreferences với các phương thức là getX(String key, defaultValue):

Với X là Boolean, Int, Float, Long, String. Phương thức tả về đúng gái trị ứng với key trong sharePreferences. Nếu không có key sẽ trả về giá trị defaultValue.

Ví dụ:

Xoá Key từ SharedPreferences

Để xoá key chúng ta sử dụng phương thức remove(key) của editor.

Xoá tất cả data SharedPreferences

Sử dụng method clear() của đối tượng editor.

Thực hành

Source code sử dụng trong bài viết này các bạn có thể dowload từ đây

Tạo project có tên là SharedPreferences. Giao diện sau khi tạo xong project:

shared-preferences-0

Trong ví dụ thực hành này tôi sẽ làm ví dụ là một màn hình settings của game như sau:

 

shared-preferences-1

File main_activity.xml

Tiếp theo sẽ là phần xử lý logic để lưu trữ các giá trị settings game sử dụng SharedPreferences.

Các bạn hãy làm và chạy lại sẽ thấy khi chúng ta thay đổi giá trị checkbox và seekbar sau đó lưu lại. Thì sau khi vào lại thì chúng ta thấy rằng phần setting này giống như chúng ta đã lưu ở trước đó.

Để chắc chắn hơn các bạn mở Android Device Moniter lên để xem file .xml được lưu ở chổ nào.

Vào Tool > Android > Andorid Device Moniter

Trong mục File Explorer, chúng ta tìm đến thư mục data/data

shared-preferences-2

Và tìm đến pakage của bạn (của mình là com.example.nguyennghia.sharedpreference) sẽ thấy một thư mục có tên là shared_prefs chứa file xml mà bạn đã lưu sử dụng SharedPreferences trong Android.

shared-preferences-3

Kết luận

Trên đây tôi đã giới thiệu các bạn các lưu trữ dữ liệu nhất trong Android sử dụng SharedPreferences cũng như ví dụ, áp dụng cụ thể để giúp các bạn hiểu được sâu hơn. Tiếp đến bài tiếp theo chúng ta sẽ cùng nhau tìm hiểu các lưu trữ sử dụng SQLite. Nếu có bất cứ thắc mắc nào các bạn có thể để lại bình luận ở dưới bài viết hoặc có thể liên hệ với fanpage Eitguide Android để được giải đáp.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.