Предоставление стиля (атрибутов) по умолчанию в пользовательском представлении

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

Я имею в виду... Я знаю, что могу определить «стиль», который устанавливает для android: background значение «@null», и попросите пользователей явно применить стиль в своем макете. Например:

<style name="MyButton" parent="@android:style/Widget.Button">
    <item name="android:background">@null</item>
</style>

и

<com.xxx.widget.MyButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/MyButton"
    android:text="MyButton" />

Приведенный выше код работает хорошо. Но как я могу применить этот стиль в моем классе «MyButton» внутри и позволить пользователям не задавать стиль явно?

Например, как заставить следующий макет работать как раньше:

<com.xxx.widget.MyButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="MyButton" />

Я попытался сделать это в конструкторе, как показано ниже, но это не работает.

public MyButton(Context context, AttributeSet attrs) {
    this(context, attrs, com.xxx.R.style.MyButton);
}

ПС. Я хочу применить этот «нулевой» фон, когда пользователь не устанавливает фон явно.

10
задан Narendra Singh 10 April 2013 в 17:39
поделиться