1

我正在扩展 EditTextPreference 类,并希望在显示对话框时在某些情况下禁用默认按钮之一。

我得到了这个答案的提示:EditTextPreference Disable Buttons? 关于如何访问默认对话框中的按钮但由于某种原因 getDialog() 在 EditTextPreference 类的所有回调方法中返回 null。

更具体地说,我尝试覆盖以下内容: onPrepareDialogBu​​ilder(Builder builder) onBindDialogView(View view) onAttachedToActivity() onBindView(View view)

是否有可能在显示默认对话框之前(或在显示之后立即影响默认对话框中的某些按钮 - 也适用于我)?

更新:我找到了一个(有点反直觉的)解决方案:只需像这样覆盖 DialogPreference 类的 showDialog() 方法:

  @Override
  protected void showDialog(Bundle state) {
    super.showDialog(state);
    Dialog dlg = getDialog();
    ...
  }

getDialog() 方法在这里返回一个非空值,您可以操作按钮。

谢谢

瓦西尔

4

1 回答 1

1

要回答我自己的问题 - 我找到了一个(有点违反直觉的)解决方案:只需覆盖 DialogPreference 类的 showDialog() 方法,如下所示:

  @Override
  protected void showDialog(Bundle state) {
    super.showDialog(state);
    Dialog dlg = getDialog();
    ...
  }

getDialog() 方法在这里返回一个非空值,您可以操作按钮。

于 2013-07-17T14:20:47.397 回答