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