import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
Cập nhật
Theo Shared Preferences | Android Developer Tutorial (Part 13) Sài Geetha M N,
Nhiều ứng dụng có thể cung cấp một cách để nắm bắt sở thích người dùng trên cài đặt của một ứng dụng cụ thể hoặc một hoạt động. Để hỗ trợ điều này, Android cung cấp một bộ API đơn giản.
Tùy chọn thường là cặp giá trị tên. Chúng có thể được lưu trữ dưới dạng “Tùy chọn được chia sẻ” trên các hoạt động khác nhau trong một ứng dụng (lưu ý hiện tại không thể chia sẻ các quy trình này qua các quy trình). Hoặc có thể là thứ gì đó cần phải được lưu trữ cụ thể cho hoạt động.
Preferences chung: Các sở thích chia sẻ có thể được sử dụng bởi tất cả các thành phần (các hoạt động, dịch vụ vv) của các ứng dụng.
Tùy chọn được xử lý hoạt động: Các tùy chọn này chỉ có thể được sử dụng trong hoạt động cụ thể và không thể được sử dụng bởi các thành phần khác của ứng dụng.
Preferences chung:
Các sở thích chia sẻ được quản lý với sự giúp đỡ của getSharedPreferences
phương pháp của lớp Context
. Các sở thích được lưu trong tập tin mặc định (1) hoặc bạn có thể chỉ định tên tập tin (2) để sử dụng để tham chiếu đến các sở thích.
(1) Cách đề nghị là sử dụng bởi chế độ mặc định, mà không chỉ định tên tập tin
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) Đây là cách bạn có được dụ khi bạn chỉ định tên tập tin
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
là chế độ hoạt động cho các tùy chọn. Đây là chế độ mặc định và có nghĩa là tệp được tạo sẽ chỉ được truy cập bởi ứng dụng gọi điện. Hai chế độ khác được hỗ trợ là MODE_WORLD_READABLE
và MODE_WORLD_WRITEABLE
. Trong MODE_WORLD_READABLE
ứng dụng khác có thể đọc tệp đã tạo nhưng không thể sửa đổi nó. Trong trường hợp MODE_WORLD_WRITEABLE
các ứng dụng khác cũng có quyền ghi cho tệp được tạo.
Cuối cùng, một khi bạn có các trường hợp sở thích, đây là cách bạn có thể lấy các giá trị được lưu trữ những ưu đãi:
int storedPreference = preferences.getInt("storedInt", 0);
Để cửa hàng đánh giá cao trong file thích SharedPreference.Editor
đối tượng phải được sử dụng . Editor
là giao diện lồng nhau trong lớp SharedPreference
.
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor cũng hỗ trợ các phương pháp như remove()
và clear()
để xóa các giá trị ưu tiên từ tập tin.
Preferences
Hoạt động:
Các sở thích chia sẻ có thể được sử dụng bởi các thành phần ứng dụng khác. Nhưng nếu bạn không cần chia sẻ sở thích với các thành phần khác và muốn có các tùy chọn riêng tư hoạt động, bạn có thể làm điều đó với sự trợ giúp của phương thức hoạt động của getPreferences()
. Phương thức getPreference
sử dụng phương thức getSharedPreferences()
với tên của lớp hoạt động cho tên tệp tùy chọn.
Tiếp theo là mã để có được ưu đãi về
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Mã để lưu trữ các giá trị cũng giống như trong trường hợp sở thích chia sẻ.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Bạn cũng có thể sử dụng các phương pháp khác như lưu trữ trạng thái hoạt động trong cơ sở dữ liệu. Lưu ý Android cũng chứa một gói có tên là android.preference
. Gói này định nghĩa các lớp để triển khai UI tùy chọn ứng dụng.
Để xem một số ví dụ khác, hãy kiểm tra bài đăng trên trang web nhà phát triển của Data Storage của Android.
+1: u lưu ngày của tôi .. không ai trong số các hướng dẫn/ví dụ trên Internet nói về việc này. tất cả họ đều nói về các tính năng và tùy chỉnh của abt, nhưng không phải cách đọc nó. – ankitjaininfo
btw, tập tin 'name' trong trường hợp này là gì? – ankitjaininfo
Xem cập nhật câu trả lời của tôi và tên tệp giống như 'package.prefs' nhưng tôi không chắc chắn. – Pentium10