【问题标题】:Setting Current value to EditTextPreference for the first time首次将当前值设置为 EditTextPreference
【发布时间】:2015-03-20 11:21:35
【问题描述】:

我正在开发一个使用 Preference Fragment 的 android 应用程序。在那个首选项(设置)片段中,我有两个 EditTextPreference 来更改名字和姓氏。我需要的是,我想在第一次加载首选项片段时向 EditTextPreference 显示当前的名字和姓氏,以便用户可以查看他们当前的名字和姓氏,并可以据此进行相应的更改。

【问题讨论】:

    标签: android android-fragments preferencefragment


    【解决方案1】:

    当您在 xml 文件中创建 edittext Preference 时,您可以设置默认值和摘要。

    <EditTextPreference
                 ....
                 android:key="key_firstname"
                 android:defaultValue="Lincy"
                 android:summary="Lincy"/>   
    

    您可以为名字和姓氏编辑文本首选项设置此项。当您第一次加载偏好活动时,它将显示值。

    现在你可以在你的偏好片段中使用下面的代码,这样每当你更新edittext偏好值时,它总是会在摘要中显示最新的值。

    EditTextPreference firstname =  (EditTextPreference) findPreference("key_firstname");
    firstname .setSummary(sharedPreferences.getString("key_firstname","Lincy"));
    
    EditTextPreference lastname=  (EditTextPreference) findPreference("key_lastname");
    lastname.setSummary(sharedPreferences.getString("key_lastname","Laiju"));
    

    要设置edittext Preference的值,请使用下面的代码。

    SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit();
    editor.putString("key_firstname","userfirstname"); // You can pass you username value here
    editor.putString("key_lastname","userlastname"); // You can pass you username value here
    editor.commit();
    

    【讨论】:

    • 嗨,非常感谢 Pooja 的回答。但我的问题是我想设置一个名称,该名称会随着用户登录以及用户首次打开设置页面时动态变化。跨度>
    • @LincyLaiju 嗨,您想以编程方式设置 edittextPreference 值吗?如果是,那么我会更新我的答案。
    • 非常感谢。上帝保佑你。我可以在 onResume() 中设置还是在 onCreate() 中设置
    • 这取决于您的要求。 onCreate() 只调用一次。每次活动恢复时都会调用 onResume()。 @LincyLaiju
    • :好的。你在android中开发了一个聊天应用程序,服务器部分有数据库?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多