我已经设置了我的设置活动,并且在运行我的模拟时,我可以编辑我的设置..关闭应用程序并再次启动它并保持相同状态。 现在当我想从活动textview中引用它时,我得到了我第一次写入strings.xml的密钥,这是unitnumkey,但是设置活动存储它很好..
我到底错过了什么?
这里是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(), ""));
}
答案 0 :(得分:0)
根本没有打开首选项,只需读取字符串值即可。
你需要这样做: 更新2
String phoneNum = getString(R.string.pref_file_key_unit_number);
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String myValue = preferences.getString(phoneNum, null);
final TextView mTextView = (TextView) findViewById(R.id.textView);
mTextView.setText(myValue);