仅在重新启动应用程序时才会发生首选项更改

时间:2012-05-09 16:11:55

标签: android checkbox listener sharedpreferences changelistener

我正在编写一个应用程序,我添加了一个首选项菜单,它可以工作,但只有当我重新启动应用程序时才会发生更改,任何人都知道如何在不退出应用程序的情况下进行更改??? 在此先感谢;)

我的代码(来自主要活动):

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 varibles

提前致谢!!! ;)

EDIT1:添加了偏好活动

     public class PantallaOpciones extends PreferenceActivity {

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

       addPreferencesFromResource(R.xml.opciones);
          }
        }

1 个答案:

答案 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.