2010-10-19 52 views
5

Khi bạn thiết lập một sở thích chung như dưới đây ...Truy cập Shared Preferences từ Hoạt động khác nhau (Android)

public static final String PREFS_HI = "MyPrefsFile"; 

Bạn có thể truy cập nó từ các hoạt động khác giống như bạn thường làm gì?

SharedPreferences settings = getSharedPreferences(PREFS_HI, 0); 

Hoặc có điều gì đó độc đáo mà bạn phải làm để truy cập tùy chọn không?

Trả lời

1

Tự mình hiểu điều này. Tôi chỉ sử dụng các biến toàn cầu và sharedpreferences được lưu trữ bên trong đó. Khi một hoạt động khác muốn truy cập các sở thích, nó sẽ truy cập đơn giản một biến toàn cầu.

+0

Bạn có nghĩa là bạn đã 'SharedPreferences' lưu trữ là 'static' công cộng? Bạn thực sự không nên làm điều đó. Tôi đã phạm sai lầm tương tự và mặc dù nó hoạt động, nó gây ra một rò rỉ bộ nhớ lớn. Xem: http://android-developers.blogspot.in/2009/01/avoiding-memory-leaks.html –

3

Tôi sẽ lưu trữ tên tùy chọn được chia sẻ của bạn (Những gì bạn đang gọi PREFS_HI) trong tệp tài nguyên xml (strings.xml). Sau đó, bạn chỉ có thể sử dụng getSharedPreferences(getResources().getString(R.string.sharedPrefs)). Giải pháp của bạn hoạt động tốt, mặc dù. (Và hiệu suất có thể tốt hơn một chút trong phiên bản của bạn.)

+0

Ya, tôi cũng đã xem xét giải pháp thay thế này. –

0

getApplication(). GetSharedPreferences (tên, mode) thử này

Các vấn đề liên quan