3

ブール値と文字列値の共有設定を作成しました。ブール値は別のアクティビティで取得されます。しかし、文字列については、デフォルト値しか取得していません。

Home.class

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    SharedPreferences.Editor spe = prefs.edit();

    spe.putBoolean("flag", true); 
    spe.putString("user", "hello");
    spe.commit(); 

welcome.class

      SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    boolean flag= prefs.getBoolean("flag", false); 
    String user=prefs.getString("user","Nothing");  

      TextView tv = new TextView(this);
      tv.setText("Flag : "+flag+(" User : "+user);

'user'の場合、'Nothing'のみが表示されます。コードはどこで修正すればよいですか?

4

1 に答える 1

8

使用してみてください:

SharedPreferences settings = getSharedPreferences(appName,0);
settings.getBoolean("flag", true);  
settings.getString("user", "hello"); 

そして置くために:

SharedPreferences settings = getSharedPreferences(appName,0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("flag",true);
editor.putString("user","hello");
editor.commit();

これは私のアプリケーションで使用するものであり、多くの多くのクラスにまたがるブール値/整数/文字列を共有します

注:公式チュートリアルのように、appNameはアプリ名である必要はありません。

于 2010-12-13T14:19:12.783 に答える