-1

私はアンドロイド開発の初心者です。私の最初のアプリでは、アプリ全体でいくつかの文字列を共有するために SharedPreferences を使用していました。現在、タブを使用してアプリを作成しています。私の最初のアクティビティは、SharedPreferences を設定している LoginActivity です。

 myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);

 SharedPreferences.Editor e = myPrefs.edit();
 e.putString("name", "Piscean");
 e.commit();

 Intent mainIntent = new Intent(LoginActivity.this, TabActivity.class);
 startActivity(mainIntent);

TabActivity は FragmentActivity から拡張されており、4 つの Framents があります。ここで、TabActivity のフラグメントの 1 つで SharedPreferences にアクセスしたいと考えています。使ってみた

 SharedPreferences myPrefs = getActivity().getSharedPreferences("myPrefs", 0);
 System.out.println("Name: "+myPrefs.getString("name", "empty"));

そしてその印刷は空です。どうすればそれを行うことができますか?前もって感謝します。

4

2 に答える 2

2

使用する必要がありますgetActivity().getSharedPreferences(...)

于 2013-06-26T14:41:20.053 に答える
1

コンテキストがアクティビティからフラグメントに変更されたことに注意してください。あなたのアクティビティであなたが使用していたと思います:

this.getSharedPreferences(..)

フラグメントでは、コンテナ アクティビティのコンテキストが必要です。

getActivity().getSharedPreferences(...)
于 2013-06-26T14:44:36.133 に答える