0

我正在尝试通过styles.xml 设置我的标签样式。这是我的代码:

   tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.style.tabsel_bg_style);
   tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.style.tab_bg_style);

在styles.xml 中:

<style name="tabsel_bg_style" parent="@android:style/Theme.Holo.Light">
  <item name="android:tabWidgetStyle">@style/tabsel_bg_style1</item>
</style>


<style name="tabsel_bg_style1" parent="@android:style/Widget.TabWidget">
      <item name="android:background">@drawable/tab_bg_img</item>
</style>

<style name="tab_bg_style" parent="@android:style/Theme.Holo.Light">
  <item name="android:tabWidgetStyle">@style/tab_bg_style1</item>
</style>


<style name="tab_bg_style1" parent="@android:style/Widget.TabWidget">
      <item name="android:background">@color/White</item>

但我得到了例外:

android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0002

我知道这很简单,但不知道我到底哪里出错了?

4

1 回答 1

0

for 的参数setBackgroundResource(int resId)应该是Drawable的 ID ,而不是样式。

tabHost.getTabWidget().getChildAt(0)
.setBackgroundResource(R.drawable.tab_bg_img);

据我所知,没有办法将样式应用于 XML 布局之外的元素。如果您通过代码创建了视图,则可以使用构造函数的第三个参数来设置默认样式。

public View(Context context, AttributeSet attrs, int defStyle) {
   ...
}
于 2013-10-25T07:07:32.857 回答