2013-01-13 2 views
3

Andrioid의 환경 설정 시스템을 LibGDX의 환경 설정 시스템과 함께 사용하려고합니다. 그들은 둘 다 SharedPreferences를 백엔드로 사용하기 때문에 함께 작동 할 수 있어야한다고 생각하지만 LibGDX 환경 설정에서 데이터를로드하려고하면 데이터가 다시 반환되지 않습니다.Android 환경 설정에서 LibGDX 사용

내 Android preferences.xml로 파일 (내가 짧은 알고, 훨씬 더 나중에해야합니다 : P)을 : 나는 그것을 호출 할 때

import android.annotation.SuppressLint; 
import android.annotation.TargetApi; 
import android.os.Build; 
import android.os.Bundle; 
import android.preference.PreferenceActivity; 
import android.preference.PreferenceFragment; 

public class WallpaperSettings extends PreferenceActivity { 

    @SuppressLint("NewApi") 
    @SuppressWarnings("deprecation") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (Build.VERSION.SDK_INT < 11) { 
      addPreferencesFromResource(R.xml.preferences); 
     } else { 
      getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); 
     } 

    } 

    @TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    public static class MyPreferenceFragment extends PreferenceFragment 
    { 
     @Override 
     public void onCreate(final Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.preferences); 
     } 
    } 
} 

: 여기

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
    <EditTextPreference 
     android:key="framerate" 
     android:title="Set Framerate" 
     android:enabled="true" 
     android:persistent="true" 
     android:defaultValue="25" /> 
</PreferenceScreen> 

내 PreferenceActivity를하다 com.badlogic.gdx.Game의 서브 클래스에서, 나는내

Preferences pref = Gdx.app.getPreferences("preferences"); 
pref.getInteger("framerate"); 

에게 키의 번호를 사용3210은 0입니다.

누구가 이것이 어떻게 고쳐 졌는지에 대한 단서가 있습니까?

답변

3

덕분에 http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=6365#p32981 덕분에 문제를 해결할 수있었습니다.

코드는 Android 2.x 및 3.0 이상에서 작동합니다.

import android.annotation.SuppressLint; 
import android.annotation.TargetApi; 
import android.os.Build; 
import android.os.Bundle; 
import android.preference.PreferenceActivity; 
import android.preference.PreferenceFragment; 

public class WallpaperSettings extends PreferenceActivity { 

    @SuppressLint("NewApi") 
    @SuppressWarnings("deprecation") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (Build.VERSION.SDK_INT < 11) { 
      addPreferencesFromResource(R.xml.preferences); 
     } else { 
      getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); 
     } 

    } 

    @TargetApi(Build.VERSION_CODES.HONEYCOMB) 
    public static class MyPreferenceFragment extends PreferenceFragment 
    { 
     @Override 
     public void onCreate(final Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.preferences); 
      getPreferenceManager().setSharedPreferencesName("preferences"); 
      getPreferenceManager().setSharedPreferencesMode(0); 
     } 
    } 
} 
관련 문제