Androidの共有設定の問題

android
Androidの共有設定の問題

こんにちは、みんな、

私の活動では、いくつかのデータを保存するためにデフォルトの共有プリフレンスを使用しました。そして、それも保存されます。 しかし、クラス(アクティビティのない単純なクラス)の外側の共有プリフレンスにアクセスしたい場合、プロジェクトにエラーが表示されます。

コード:

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

getDefaultSharedPreferencesのレッドラインを表示し、その上にマウスを置くと表示されます

タイプPreferenceManagerのメソッドgetDefaultSharedPreferences(Context)は、引数(Myclassname)には適用されません。

誰でも私を助けることができますか…​私はアクティビティではないアクティビティクラスの外で共有されたプリフレンスにアクセスしたいです。

前もって感謝します。

  0  0


ベストアンサー

現在のコンテキストをgetDefaultSharedPreferences()に渡さずに作業することはできません。外部にアクセスしたい場合は、そのクラスにコンテキストを渡す方法を見つける必要があります。

いくつかの提案+静的変数を使用できます

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

onCreate(--){
    context = this;
}

}

だからあなたのクラスで使用することができます

getDefaultSharedPreferences(A.context);

注:Aが現在のアクティビティである場合にのみ機能します。

または、コンストラクターまたは特定の関数に値を渡すなどの関数を使用して、コンテキストをそのクラスに渡すことができます。 そこに保存してそこから使用できます

2


タイトルとURLをコピーしました