2012-06-29 24 views
5

Tôi đã đọc câu hỏi: thisthis về cách đọc các tùy chọn được chia sẻ. Nhưng họ vẫn cần bối cảnh để truy cập SharedPreferences. Tôi muốn biết cách truy cập SharedPreferences mà không cần bối cảnh. Cảm ơn trướcTruy cập SharedPreferences mà không có ngữ cảnh

+3

Bạn chỉ cần _can't_, nhưng miễn là ứng dụng của bạn đang chạy có một _Application Context_ có sẵn để được sử dụng ... –

+0

Bạn không thể. Nó cần một ngữ cảnh. – Guardanis

+0

Nếu bạn có thể giải thích lý do tại sao bạn cần theo cách đó, có thể chúng tôi có thể giúp bạn nhiều hơn với điều đó. – Erol

Trả lời

5

Tôi giải quyết vấn đề của mình bằng cách truy xuất ApplicationContext trước (this) và sau đó sử dụng ngữ cảnh đó để nhận SharedPreferences. cảm ơn K-ballo.

0

Application Class:

import android.app.Application; 
import android.content.Context; 

public class MyApplication extends Application { 

    private static Context mContext; 

    public void onCreate() { 
     super.onCreate(); 
     mContext = getApplicationContext(); 
    } 

    public static Context getAppContext() { 
     return mContext; 
    } 

} 

Khai báo các ứng dụng trong AndroidManifest:

<application android:name=".MyApplication" 
    ... 
/> 

Cách sử dụng:

PreferenceManager.getDefaultSharedPreferences(MyApplication.getAppContext()); 
Các vấn đề liên quan