我有一个DialogPreference
名为的子类MyDialogPreference
,它有两个用于用户名和密码的 EditText,当我单击DialogInterface.BUTTON_POSITIVE
按钮时,我设置了一些首选项,如下所示:
//I get userId from SQLite before this
SharedPreferences settings = this.getContext()
.getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("userId", userId);
editor.commit();
我希望在调用 DialogPreference 的 SettingsFragment 中,每当我关闭 MyDialogPreference 时,我都可以将更改的数据显示为 Preference 的摘要
这是首选项的布局:
<Preference
android:key="update"
android:title="Update other preference" >
</Preference>
<com.cmr.MyDialogPreference
android:key="userPassScreen"
android:title="Login User" >
</com.cmr.MyDialogPreference>
我试图将此 DialogPreference 绑定到 OnPreferenceChangeListener,但它没有用。
这也是它的代码:
DialogPreference userPassScreen = (DialogPreference) findPreference("userPassScreen");
userPassScreen
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference,
Object newValue) {
SharedPreferences settings = context
.getSharedPreferences(PREFS_NAME, 0);
int userId = settings.getInt("userId", 0);
if (userId == 0) {
preference.setSummary("Please Login");
return false;
}
try {
preference.setSummary(String.valueOf(userId));
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
});
有什么办法可以做到吗?
PS。对不起,我的英语不好