2015-12-30 3 views
0

У меня есть MediaRouterButton для хромирования в моем устройстве Android. Теперь я хочу, чтобы программно включить/отключить его щелчок, поэтому у меня есть такая строка кода:setClickable() to false не работает на Android-устройстве ChromeCast MediaRouterButton

mediaButton.setClickable(false). 

Но оно не отключить его щелчок, диалог Chromecast по-прежнему отображаться.

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

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

+0

использование setEnabled() вместо setClickable() – Selva

+0

он не работает ... mediaroutebutton фактически проходит от точки зрения непосредственно вместо butoon – Qing

+0

То, что вы пытаетесь сделать, это против предполагаемого дизайна для кнопки Cast, Каков ваш прецедент? –

ответ

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; 
     } 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^