2016-08-15 7 views
-1

私はのgetSharedPreferences()メソッドの外でSharedPreferences CODEを初期化したいが、失敗した(メソッドの成功の中で)以下はエラー情報である。直し方? java.lang.NullPointerExceptionが:によって引き起こさメソッドの外部でgetSharedPreferencesを使用するには?

」ヌル上の仮想 方法 '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(); 
関連する問題