第一次为EditTextPreference设置当前值

3
我正在开发一款Android应用程序,其中使用了Preference Fragment。在该Preference(用于设置)Fragment中,我有两个EditTextPreference来更改名字和姓氏。我需要的是,当我首次加载偏好Fragment时,我想显示当前的名字和姓氏到EditTextPreference,以便用户可以查看他们当前的名字和姓氏,并根据此进行相应的更改。
1个回答

2

当您在XML文件中创建edittext首选项时,可以设置默认值和摘要。

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

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

现在,您可以在首选项片段中使用以下代码,以便每当您更新编辑文本首选项值时,总是显示最新值。

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偏好设置的值,请使用以下代码。

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的答案。但我的问题是,我想设置一个名称,它会随着用户登录而动态更改,并且在用户第一次打开设置页面时也会更改。 - Lincy Laiju
@LincyLaiju 你好,你想以编程方式设置EditTextPreference的值吗?如果是的话,我会更新我的答案。 - Pooja
非常感谢。上帝保佑你。我可以在onResume()中设置它,还是应该在onCreate()中做? - Lincy Laiju
这取决于您的要求。onCreate()仅被调用一次。onResume()每次恢复活动时都会被调用。@LincyLaiju - Pooja
你开发过在Android上带有服务器端数据库的聊天应用程序吗? - Lincy Laiju
谢谢你所做的一切。晚安。 - Lincy Laiju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接