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

前端之家收集整理的这篇文章主要介绍了Android – 使偏好设置禁用,但仍然注册点击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以在我的应用程序的某些状态下,我想在我的设置菜单中禁用某些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
        }
    }

}
原文链接:https://www.f2er.com/android/313336.html

猜你在找的Android相关文章