禁用Android按钮的setText
我扩展了button类,以实现用户无法更改其任何细节或样式的登录按钮。完成后,我发现我无法阻止用户通过编程或xml更改按钮的文本或设计 我想实现一个类似Facebook的登录按钮,通过Facebook预定义登录 我试图重写setText,但没有成功,这是最后一个无法重写的方法禁用Android按钮的setText,android,button,textview,Android,Button,Textview,我扩展了button类,以实现用户无法更改其任何细节或样式的登录按钮。完成后,我发现我无法阻止用户通过编程或xml更改按钮的文本或设计 我想实现一个类似Facebook的登录按钮,通过Facebook预定义登录 我试图重写setText,但没有成功,这是最后一个无法重写的方法 public class SignInButton extends Button{ @Override public void setText(CharSequence chars){ } } 我
public class SignInButton extends Button{
@Override
public void setText(CharSequence chars){
}
}
我建议不要延长按钮。使视图扩展
View
,并使用onDraw
方法绘制视图
这样,视图就不是一个按钮,因此开发人员不能使用
setText()
开发人员将始终能够通过((按钮)yourCustomButton.)setText()使用setText()
。不管怎么说,你为什么要阻止它?@Dr.Pelocho这是为一家公司设计的,像Facebook按钮。所以我想阻止任何更改FaceBook有自己的登录按钮,但它们也允许开发人员自定义视图。你应该让开发者选择他们的方式。如果您真的想强迫人们完全使用您的设计,只需重写setter方法,什么也不做。或者,创建自己的类,将所有内容都设置为私有。