我正在扩展 EditTextPreference 类,并希望在显示对话框时在某些情况下禁用默认按钮之一。
我得到了这个答案的提示:EditTextPreference Disable Buttons? 关于如何访问默认对话框中的按钮但由于某种原因 getDialog() 在 EditTextPreference 类的所有回调方法中返回 null。
更具体地说,我尝试覆盖以下内容: onPrepareDialogBuilder(Builder builder) onBindDialogView(View view) onAttachedToActivity() onBindView(View view)
是否有可能在显示默认对话框之前(或在显示之后立即影响默认对话框中的某些按钮 - 也适用于我)?
更新:我找到了一个(有点反直觉的)解决方案:只需像这样覆盖 DialogPreference 类的 showDialog() 方法:
@Override
protected void showDialog(Bundle state) {
super.showDialog(state);
Dialog dlg = getDialog();
...
}
getDialog() 方法在这里返回一个非空值,您可以操作按钮。
谢谢
瓦西尔