我已经设置了我的设置活动,当运行我的模拟时,我可以编辑我的设置..关闭应用程序并重新启动它,并保持不变。 现在,当我想从一个活动textview引用这个时,我得到了我第一次写入到strings.xml中的密钥,它是unitnumkey,但设置活动存储它很好..Android设置和首选项
我在这里错过了什么?
这里是pref_general.xml
android:key="@string/pref_file_key_unit_number"
android:title="@string/pref_title_unit_number"
android:defaultValue="@string/pref_default_unit_number"
android:selectAllOnFocus="true"
android:inputType="phone"
android:singleLine="true"
android:maxLines="1" />
的strings.xml
<string name="pref_header_general">General</string>
<string name="pref_title_unit_number">Unit SMS Number</string>
<string name="pref_default_unit_number">0756745745</string>
<string name="pref_file_key_unit_number">unitnumKey</string>
的TextView活动
String phoneNum = getString(R.string.pref_file_key_unit_number);
final TextView mTextView = (TextView) findViewById(R.id.textView);
mTextView.setText(phoneNum);
settingsactivity
public static class GeneralPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
setHasOptionsMenu(true);
bindPreferenceSummaryToValue(findPreference("unitnumKey"));
}
private static void bindPreferenceSummaryToValue(Preference preference) {
// Set the listener to watch for value changes.
preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
// Trigger the listener immediately with the preference's
// current value.
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
PreferenceManager
.getDefaultSharedPreferences(preference.getContext())
.getString(preference.getKey(), ""));
}
什么是bindPreferenceSummaryToValue?它看起来像你必须使用不同的库,而不是Android的PreferenceFragment库,这种类型的信息总是有帮助 –
我正在使用一个settingsactivity模板...我添加了一些关于bindpref的代码 –
对不起,请参阅我的更新2那里我在setText中使用'myValue' –