我正在编写一个应用程序,我添加了一个首选项菜单,它可以工作,但只有当我重新启动应用程序时才会发生更改,任何人都知道如何在不退出应用程序的情况下进行更改??? 在此先感谢;)
我的代码(来自主要活动):
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)
我问这个是因为我还没有创建prefs
和key
varibles
提前致谢!!! ;)
EDIT1:添加了偏好活动
public class PantallaOpciones extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.opciones);
}
}
答案 0 :(得分: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.