【问题标题】:Android EditTextPreference - how to disable one of the buttons in the default dialogAndroid EditTextPreference - 如何禁用默认对话框中的按钮之一
【发布时间】:2013-05-16 11:41:07
【问题描述】:

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

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

更具体地说,我尝试覆盖以下内容: onPrepareDialogBu​​ilder(生成器生成器) onBindDialogView(查看视图) onAttachedToActivity() onBindView(查看视图)

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

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

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

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

谢谢

瓦西尔

【问题讨论】:

    标签: android preferences


    【解决方案1】:

    回答我自己的问题 - 我找到了一个(有点违反直觉的)解决方案:只需像这样覆盖 DialogPreference 类的 showDialog() 方法:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-09
      • 2011-06-13
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      相关资源
      最近更新 更多