setClickable() в false не будет работать на Android ChromeCast's MediaRouterButton

У меня есть MediaRouterButton для Chromecast в моем устройстве Android. Теперь я хочу программно включить / отключить его клик, поэтому у меня есть такая строка кода:

mediaButton.setClickable( false ).

Но это не отключает его щелчок, диалоговое окно chromecast все еще появляется.

Я пытаюсь проверить исходный код для него, он переопределяет метод executeClick(), но после того, как я установил точку останова для этого метода и отладки, я не нашел никаких методов в стеке, кроме this executeClick().

Может кто-нибудь сказать мне, почему это происходит?

1 ответ

Решение

Наконец у меня есть работа вокруг....

Просто переопределите MediaRouteButton, переопределите его метод executeClick(), вставьте логику, которую вы хотите сделать.

public class CustomizedChromesCastButton extends MediaRouteButton {
    private boolean enable = true;
    public CustomizedChromesCastButton( Context context ){
        super( context );
    }
    public CustomizedChromesCastButton(Context context, AttributeSet attrs){
        super( context, attrs );
    }
    public CustomizedChromesCastButton(Context context, AttributeSet attrs, int defStyleAttr){
        super( context, attrs, defStyleAttr );
    }

    public void setCastEnable( boolean enable ){
        this.enable = enable;
    }

    public boolean performClick(){
        if( enable ){
            return super.performClick();
        }
        else {
            return false;
        }
    }
}
Другие вопросы по тегам