5

次のコードを使用しています。このコードはデスクトップバージョンでは正常に機能しますが、Androidデバイスでは機能しません。戻り値Gdx.app.getPreferences(PREFS_NAME)は常にnullです。なんで?どこで間違えることができますか?

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Preferences;

public class BeatlesPreferences {
    // constants
    private static final String PREF_VIBRO = "vibro";
    private static final String PREF_MUSIC_ENABLED = "musicenabled";
    private static final String PREF_SOUND_ENABLED = "soundenabled";
    private static final String PREFS_NAME = "my_app";

    public BeatlesPreferences() {
    }

    protected Preferences getPrefs() {
        return Gdx.app.getPreferences(PREFS_NAME);
    }

    public boolean isSoundEffectsEnabled() {
        return getPrefs().getBoolean(PREF_SOUND_ENABLED, true);
    }

    public void setSoundEffectsEnabled(boolean soundEffectsEnabled) {
        getPrefs().putBoolean(PREF_SOUND_ENABLED, soundEffectsEnabled);
        getPrefs().flush();
    }

    public boolean isMusicEnabled() {
        return getPrefs().getBoolean(PREF_MUSIC_ENABLED, true);
    }

    public void setMusicEnabled(boolean musicEnabled) {  
        getPrefs().putBoolean(PREF_MUSIC_ENABLED, musicEnabled);
        getPrefs().flush();
    }

    public boolean isVibroEnabled() {
        return getPrefs().getBoolean(PREF_VIBRO, true);
    }

    public void setVibroEnabled(boolean vibro) {
        getPrefs().putBoolean(PREF_VIBRO, vibro);
        getPrefs().flush();
    }
}
4

2 に答える 2

11

次のように使用します。

   private Preferences preferences;
   protected Preferences getPrefs() {
      if(preferences==null){
         preferences = Gdx.app.getPreferences(PREFS_NAME);
      }
   return preferences;
   }
于 2013-06-29T00:26:49.793 に答える