我的android设备中有一个用于chromecast的MediaRouterButton。 现在我想以编程方式启用/禁用其单击,因此我有这样的代码行:
mediaButton.setClickable( false ).
但它没有禁用其点击,Chromecast对话框仍会显示。
我尝试检查它的源代码,它会覆盖performClick()方法,但在我设置了一个断点到这个方法并调试之后,除了这个performClick()之外,我找不到堆栈中的任何方法。
谁能告诉我为什么会这样?
答案 0 :(得分: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;
}
}
}