Android – 使偏好设置禁用,但仍然注册点击

Android – 使偏好设置禁用,但仍然注册点击,第1张

概述所以在我的应用程序的某些状态下,我想在我的设置菜单中禁用某些CheckBoxPreferences.但是,如果用户点击它们,我想要一个说明性的吐司.如果我只是做setEnable(false);在CheckBoxPreference上,我确实得到了正确的外观和感觉.但是我不能在点击中显示吐司.另一方面,我手动使一个CheckBoxPreference看起来像是被禁用失败. 而不是禁用首选项,您也可 所以在我的应用程序的某些状态下,我想在我的设置菜单中禁用某些CheckBoxPreferences.但是,如果用户点击它们,我想要一个说明性的吐司.如果我只是做setEnable(false);在CheckBoxPreference上,我确实得到了正确的外观和感觉.但是我不能在点击中显示吐司.另一方面,我手动使一个CheckBoxPreference看起来像是被禁用失败.解决方法 而不是禁用首选项,您也可以禁用仅偏好设置的视图.
public class DisabledAppearanceCheckBoxPreference extends CheckBoxPreference {        protected boolean mEnabledAppearance = false;        public DisabledAppearanceCheckBoxPreference(Context context,AttributeSet attrs) {            super(context,attrs);        }    @OverrIDe    protected voID onBindVIEw(VIEw vIEw) {        super.onBindVIEw(vIEw);        boolean vIEwEnabled = isEnabled()&&mEnabledAppearance;        enableVIEw(vIEw,vIEwEnabled);    }    protected voID enableVIEw( VIEw vIEw,boolean enabled){        vIEw.setEnabled(enabled);        if ( vIEw instanceof VIEwGroup){            VIEwGroup grp = (VIEwGroup)vIEw;            for ( int index = 0; index < grp.getChildCount(); index++)                enableVIEw(grp.getChildAt(index),enabled);        }    }    public voID setEnabledAppearance( boolean enabled){        mEnabledAppearance = enabled;         notifyChanged();    }    @OverrIDe    protected voID onClick() {        if ( mEnabledAppearance)            super.onClick();        else{            // show your toast here        }    }}
总结

以上是内存溢出为你收集整理的Android – 使偏好设置禁用,但仍然注册点击全部内容,希望文章能够帮你解决Android – 使偏好设置禁用,但仍然注册点击所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1133895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存