Это может помочь вам вернуться в нужное русло и иметь рабочие предпочтения:
ФАЙЛ XML: preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="Preferences Font">
<EditTextPreference
android:title="Select Font Size"
android:key="foobar"
android:summary="Enter Font Size"
android:defaultValue="12" />
</PreferenceCategory>
</PreferenceScreen>
ФАЙЛ 1 JAVA: Home.java
public class Home extends Activity {
public SharedPreferences prefs;
static public String fontPref; //you can make it an int or whatever you need
static public String myValue; //to store new pref value
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.home);
initializeStyle();
}
private void initializeStyle() {
prefs = PreferenceManager.getDefaultSharedPreferences(this);
fontPref = prefs.getString("foobar", "hi"); //this doesn't actually change the value
myValue = "This is a test";
Log.i("MyActivity", foobar); //won't show change yet
}
}
JAVA FILE 2: Prefernce.java
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
//... and any other imports
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener{
private SharedPreferences prefs;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
//add other stuff here if you need, especially if you might have some
//prefs that use buttons and need to set up your onClickListener for one
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPref, String key) {
Editor editor = sharedPref.edit();
if(key.equalsIgnoreCase("foobar")){
Home.fontPref = sharedPref.getString("foobar", "some value");
editor.putString("foobar", Home.myValue); //where ever or whatever new value is
}
editor.commit();
Log.i("PrefsActivity", foobar); //should show change now
}
}
Надеюсь, это поможет вам встать на правильный путь.Конечно, есть много способов сделать это, так что, удачи, надеюсь, это поможет.