【发布时间】:2014-08-03 10:49:48
【问题描述】:
我正在尝试构建一个设置菜单,但我遇到了一些麻烦......
- 我无法从
EditTextPreference获取文本 - 我无法将其插入到我的
sharedPreferences文件中
我可以帮忙吗?
首选项类
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
sharedPreferences.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
SharedPreferences.Editor editor = sharedPreferences.edit();
contact1 = (EditTextPreference) findPreference("contact1");
editor.putString("contact1", String.valueOf(contact1)).commit();
}
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
}
首选项 XML
<?xml version="1.0" encoding="utf-8"?>
<EditTextPreference
android:title="Contact 1"
android:key="@+id/contact1"
android:summary="Enter your contact">
</EditTextPreference>
<EditTextPreference
android:title="Contact 2"
android:key="@+id/contact2"
android:summary="Enter your contact">
</EditTextPreference>
获取主要活动的数据
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
number1 = settings.getString("contact1", "");
number2 = settings.getString("contact2", "");
contact1 = "tel: " + number1;
contact2 = "tel: " + number2;
【问题讨论】:
-
您是否将“PreferenceActivity”扩展到您的设置活动?
-
是的,我用过……还有一个工具
-
您能否添加与此过程相关的所有其他代码段?例如:settings.xml
-
@ZuseeWeekin Done... 我可以打开设置菜单,单击框,但是当我编辑一些文本时它不会保存它
标签: java android sharedpreferences android-preferences