以编程方式设置defaultPreference

阿什舒杜

我有一个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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

以编程方式设置defaultPreference

来自分类Dev

以编程方式设置GoogleMapOptions

来自分类Dev

以编程方式设置渐变

来自分类Dev

以编程方式设置TextView

来自分类Dev

以编程方式设置GoogleMapOptions

来自分类Dev

以编程方式设置LayoutParams

来自分类Dev

以编程方式设置图层

来自分类Dev

以编程方式设置多行

来自分类Dev

以编程方式设置视图

来自分类Dev

以编程方式设置IBInspectable

来自分类Dev

以编程方式设置 SeekBar

来自分类Dev

以编程方式设置/激活Segue

来自分类Dev

以编程方式设置LinearLayout的重力

来自分类Dev

以编程方式设置Jetty GzipHandler

来自分类Dev

以编程方式设置NinePatch背景

来自分类Dev

Unity以编程方式设置SplitApplicationBinary

来自分类常见问题

以编程方式打开Android设置

来自分类Dev

以编程方式设置导航栏?

来自分类Dev

以编程方式设置根viewController

来自分类Dev

以编程方式设置数据提示?

来自分类Dev

以编程方式设置LinearLayout的minHeight

来自分类Dev

Swift以编程方式设置segues

来自分类Dev

以编程方式设置按钮图像

来自分类Dev

以编程方式设置构建说明

来自分类Dev

EFCircularSlider以编程方式设置currentValue

来自分类Dev

以编程方式设置按钮样式

来自分类Dev

android:checkableBehavior以编程方式设置

来自分类Dev

以编程方式设置TextBlock的样式

来自分类Dev

以编程方式设置下拉选项