Mag*_*s W 0 android sharedpreferences
有没有办法找出用户关闭特定首选项屏幕的时间?当用户在我的某个偏好设置屏幕中更改了偏好设置时,我需要进行一些更新.不是当用户点击实际的复选框时,而是当他们按下后退按钮并完成编辑首选项时.
到目前为止,我能够找到的是我可以覆盖我的PreferenceActivity的onPause()事件,这似乎发生在用户关闭首选项时.它有效,但我不确定这是解决问题的最佳方法.有什么建议?
编辑
我无法弄清楚如何从PreferenceActivity中实际调用我的主要活动的方法.尝试玩putExtra()和各种各样的东西.最终我想 - 为什么不完全相反?所以我在主活动中实现了onResume()方法.当用户关闭首选项时,可以很好地处理这些事情,而且每次我恢复应用程序时,我都可以使用我的更新方法运行的事实.
小智 5
好吧,我一直在寻找这个问题的解决方案,持续数周至2分钟前......我想我找到了方法.
Preference myPrefScreen = findPreference("myPrefScreen");
myPrefScreen
.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference prefScreen) {
// TODO Auto-generated method stub
Dialog prefScreenDialog = ((PreferenceScreen) prefScreen)
.getDialog();
prefScreenDialog
.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
// TODO Auto-generated method stub
///HERE YOU CAN EXECUTE WHATEVER YOU WANT...
}
});
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
只需在屏幕上点击PreferenceScreen条目并显示具有首选项子项的新窗口后,您需要OnPreferenceClickListener才能正确实例化生成的PreferenceScreen对话框.否则你总是getDialog()返回null,并且没有办法将OnDismissListener附加到它.
一旦你设置OnDismissListener就完成了诀窍!!
我希望这可以有所帮助.
祝所有人快乐!
| 归档时间: |
|
| 查看次数: |
533 次 |
| 最近记录: |