2010-11-11 125 views
0

大家好,Android的共享偏好問題

在我的活動我已經使用默認共享prefrence存放一些data..and它也被存儲。 但是當我想訪問類之外的共享prefrence(沒有活動的簡單類)我的項目顯示錯誤。

代碼:getDefaultSharedPreferences

SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this); 
    user = p.getString("Username", null); 
     pass=p.getString("Password", null); 

其表示紅線,當我鼠標移到它則表示

在類型PreferenceManager不適用於參數的方法getDefaultSharedPreferences(上下文)(Myclassname )

任何人都可以幫助我...我想訪問我的共享prefrence以外的活動類,這不是一個活動。

在此先感謝。

回答

2

你不能沒有傳遞當前上下文getDefaultSharedPreferences()工作, 如果你想外面訪問,那麼你應該找到某種方式對上下文傳遞給類

一些建議
你可以使用靜態變量

class A extends Activity{ 
----------- 
Static Context context; 

onCreate(--){ 
    context = this; 
} 

} 

所以在你的類可以使用

getDefaultSharedPreferences(A.context); 

注意:只有當A是當前活動時它纔會起作用。

或者您可以使用某個函數將您的上下文傳遞給該類,如將值傳遞給其構造函數或任何特定函數。所以你可以將它存儲在那裏並從那裏使用它