0

Android デバイスに chromecast 用の MediaRouterButton があります。今、私はそのクリックをプログラムで有効/無効にしたいので、そのようなコード行があります:

mediaButton.setClickable( false ).

しかし、それはクリックを無効にしません.chromecastダイアログは引き続き表示されます.

ソース コードをチェックしてみると、それは performClick() メソッドをオーバーライドしますが、このメソッドにブレーク ポイントを設定してデバッグした後、スタック内にこの performClick() 以外のメソッドが見つかりません。

なぜこれが起こっているのか誰にも教えてもらえますか?

4

1 に答える 1

0

最後に、回避策があります....

MediaRouteButton をオーバーライドし、その performClick() メソッドをオーバーライドして、必要なロジックを挿入するだけです。

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;
        }
    }
}
于 2016-01-07T03:51:04.200 に答える