好吧,直到 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;
}
});
您需要 OnPreferenceClickListener 正确实例化仅在屏幕上点击 PreferenceScreen 条目后生成的 PreferenceScreen 对话框,并显示带有首选项子项的新窗口。否则,您总是 getDialog() 返回 null 并且无法将 OnDismissListener 附加到它。
一旦你设置了 OnDismissListener,技巧就完成了!!
我希望这会有所帮助。
祝大家编码愉快!!