Android EditTextPreference - 如何禁用默认对话框中的其中一个按钮

时间:2013-05-16 11:41:08

标签: android preferences

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

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

更具体地说,我尝试重写以下内容: onPrepareDialogBu​​ilder(构建器构建器) onBindDialogView(查看视图) onAttachedToActivity() onBindView(查看视图)

在显示默认对话框之前是否有可能影响默认对话框中的某些按钮(或者在显示它之后立即对我有效)?

更新: 我找到了一个(反直觉的)解决方案: 只需覆盖DialogPreference类的showDialog()方法,如下所示:

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

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

谢谢

Vasil

1 个答案:

答案 0 :(得分:1)

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

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

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