2016-08-15 74 views
-1

我想初始化SharedPreferences CODE使用getSharedPreferences()方法以外的方法,但失敗(內部方法成功),下面是錯誤信息。怎麼修?如何使用getSharedPreferences之外的方法?

「所造成:顯示java.lang.NullPointerException:嘗試調用虛擬方法 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String中,INT)' 上的空對象參考「

標誌着我在下面的代碼「不行」:

public class temp extends FragmentActivity { 

    //below not work 
    SharedPreferences CODE = getSharedPreferences("CODE", MODE_PRIVATE); 

    //below also not work 
    SharedPreferences CODE; 
    { 
     CODE= getSharedPreferences("CODE", MODE_PRIVATE); 
    } 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     //work 
     SharedPreferences CODE = getSharedPreferences("CODE", MODE_PRIVATE); 

     // also work 
     CODE = getSharedPreferences("CODE", MODE_PRIVATE); // defined CODE as class member 

    } 
} 
+0

*如何解決?*不要d它 –

+0

它應該被調用一個'context'變量! –

+0

我試過getApplicationContext()。getSharedPreferences(「CODE」,MODE_PRIVATE),仍然不工作 – qcm217

回答

0

再拍類,僅用於獲取和設置共享的偏好,雖然你可能需要通過您的需要(修改代碼位,如通過在構造方面)

public class SharedPreference extends Activity{ 
    public SharedPreferences preference = getSharedPreferences("TEST", Context.MODE_PRIVATE); 
    public SharedPreferences.Editor editor = preference.edit(); 
    public SharedPreferences getPreference() { 
     return preference; 
    } 

    public SharedPreferences.Editor getEditor() { 
     return editor; 
    } 
} 

,你可以在任何地方訪問它像

SharedPreference pref = new SharedPreference(); 
SharedPreferences preference = pref.getPreference(); 
相關問題