Почему так сложно задать стиль из кода в Android

Если вы хотите установить стиль кнопки, которую вы создаете из кода, вы должны сделать что-то вроде этого;

Button  btn  = new Button (mActivity, null, R.attr.someattribute);

в attrs.xml вы устанавливаете ссылку

<attr name="someStyleRef" format="reference"/>

В styles.xml вы определяете тему

<resources>
  <style name="Theme.SomeTheme" parent="android:style/Theme.Black">
     <item name="someStyleRef">@style/someStyle</item>
  </style>
</resources>

То, что позже в styles.xml определяется как например

<style name="someStyle">
        <item name="android:layout_width">2px</item>
        <item name="android:layout_height">fill_parent</item>
        <item name="android:background">@drawable/actionbar_compat_separator</item>
 </style>

Это работает, и это, согласно моему пониманию, способ установить стиль на View из кода в Android. Это кажется слишком сложным. Третий конструктор Argument кнопки мог бы легко принять ID стиля R.style.XXX

Кто-нибудь может объяснить, зачем нужна эта дополнительная сложность?

35
задан Glenn Bech 3 December 2011 в 17:27
поделиться