gpt4 book ai didi

android - 以编程方式设置首选项的默认值

转载 作者:太空狗 更新时间:2023-10-29 15:08:49 26 4
gpt4 key购买 nike

我有一个需要保存电话号码的 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);
}

最佳答案

我通过在 Preference 的 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;
}
}
}
}

关于android - 以编程方式设置首选项的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19009187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com