2012-05-09 41 views
0

我編寫的應用程序我添加了首選項菜單,它可以工作,但只有在重新啓動應用程序時纔會發生更改,任何人都知道如何在不退出應用程序的情況下進行更改? 在此先感謝;)首選項更改僅在重新啓動應用程序時發生

我的代碼(從主要活動):

preferencias = preferenceManager.getDefaultSharedPreferences(TimeToSpeechActivity.this); 

OnSharedPreferenceChangeListener listener = new SharedPreferences.OnSharedPreferenceChangeListener() { 
     public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { 
     //nothing here, do I have to put anything? 
     } 
    }; 
preferencias.registerOnSharedPreferenceChangeListener(listener); 

getPrefs(); 
changefont(fuente, letra); 
if (boole == true) {fontcolors();} 

private void getPrefs(){ 
     fuente = Typeface.createFromAsset(getAssets() , preferencias.getString("elegirfuente", "fonts/Default.ttf")); 
    letra = Integer.parseInt(preferencias.getString("fontstyle", "0")); 
    bol = preferencias.getBoolean("randomcolors", true); 
} 

我已經把什麼優先的活動,我一定要放什麼?

而且,我必須編輯這個?:(SharedPreferences prefs, String key)我問這個,因爲我還沒有創建prefskey可變因素

在此先感謝! ;)

EDIT1:增加首活性

 public class PantallaOpciones extends PreferenceActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     addPreferencesFromResource(R.xml.opciones); 
      } 
     } 

回答

0

也許你想使用SharedPreferences喜歡如下:

String PREFS_NAME = "com.example.sp", PREFS_TEST = "com.examples.sp.test"; 
SharedPreferences preferences; 

preferences = getSharedPreferences(PREFS_NAME,MODE_PRIVATE); 
// This is how you instantiate a SharedPreference object. 

preferences.edit().putString(PREFS_TEST,"TEST").commit(); 
// This way the preference is actually modified and saved. 
+0

感謝,但複製/粘貼,並沒有工作,我一定要編輯?在哪裏放? – BamsBamx

+0

前三行應該在OnCreate()內初始化您的活動的位置,另一行提交更改,您應該在需要進行更改的地方使用它。 –

+0

沒有工作:( – BamsBamx

相關問題