我有一个EditTextPreference
需要保留电话号码的。我想以编程方式将此首选项默认为手机的电话号码,所以我不能使用XML属性android:defaultValue
。我将如何去做呢?这是我正在尝试的方法,但默认值仍显示为空:
public class SettingsActivity extends PreferenceActivity
{
@Override
protected void onPostCreate(Bundle savedInstanceState)
{
super.onPostCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
TelephonyManager tMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String number = tMgr.getLine1Number();
((EditTextPreference)findPreference("phone_number")).setDefaultValue(number);
}
我通过在首选项的OnPreferenceChangeListener的onPreferenceChange方法中设置值来解决此问题:
OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new OnPreferenceChangeListener()
{
@Override
public boolean onPreferenceChange(Preference preference, Object value)
{
String stringValue = value.toString();
if (preference.getKey().equals(PREFS_KEY_PHONE_NUMBER))
{
if (TextUtils.isEmpty(stringValue))
{
TelephonyManager tMgr = (TelephonyManager)activity.getSystemService(Context.TELEPHONY_SERVICE);
stringValue = tMgr.getLine1Number();
((EditTextPreference)preference).setText(stringValue);
preference.setSummary(stringValue);
return false;
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句