2015-10-27 3 views
0

Я расширил класс кнопки, чтобы получить кнопку входа в систему, которую пользователь НЕ МОЖЕТ изменить ни одной из ее деталей или стиля. после того как я сделал это, я узнал, что я не могу запретить пользователю изменять текст или дизайн кнопки либо программно, либо из xml.Отключить setText кнопки Android

Я хочу, чтобы кнопка входа в систему, как Facebook, предопределила вход с Facebook.

Я попытался первостепенную SetText, но не повезло, его окончательный метод, который не может быть переопределить

public class SignInButton extends Button{ 
    @Override 
    public void setText(CharSequence chars){ 
    } 
} 
+1

разработчик всегда будет иметь возможность использовать 'SetText()' 'с помощью ((Button) yourCustomButton) .setText()'. В любом случае, почему вы хотите его заблокировать? – Pelocho

+0

@ Dr.Pelocho Это предназначалось для компании с определенным дизайном компании, такой как кнопка Facebook. поэтому я хочу предотвратить любые изменения. –

+0

Facebook имеет свою собственную кнопку входа в систему, но они также позволяют разработчикам создавать пользовательские представления. Вы должны позволить разработчикам выбирать свой путь. Если вы действительно хотите заставить людей использовать именно ваш дизайн, просто переопределите метод setter и ничего не сделайте. Или создайте свой собственный класс, сделайте все приватным. – kientux

ответ

2

Я бы предложил не распространять кнопку. Сделайте свой вид extends View и используйте метод onDraw для его рисования.

Таким образом View не кнопка, так что разработчик не может использовать setText()