Java 如何替代布局嵌套视图的样式?

Java 如何替代布局嵌套视图的样式?,java,android,android-layout,android-theme,Java,Android,Android Layout,Android Theme,我正在尝试覆盖自定义主题中的TextAppearance.Medium,该主题应用于我的整个应用程序,并在我的应用程序清单中包含相应的条目。由于某些原因,我指定的样式未应用于嵌套在使用自定义布局和SimpleAdapter填充的ListView中的视图该样式应用于不是绑定到ListView的项目的TextView视图 主题定义和自定义布局的示例如下 为了说明,我在使用自定义布局填充列表项时没有问题,我的主题在整个应用程序中肯定应用了,我也知道我的列表项布局可以通过使用RelativeLayout

我正在尝试覆盖自定义主题中的TextAppearance.Medium,该主题应用于我的整个应用程序,并在我的应用程序清单中包含相应的条目。由于某些原因,我指定的样式未应用于嵌套在使用自定义布局和SimpleAdapter填充的ListView中的视图该样式应用于不是绑定到ListView的项目的TextView视图

主题定义和自定义布局的示例如下

为了说明,我在使用自定义布局填充列表项时没有问题,我的主题在整个应用程序中肯定应用了,我也知道我的列表项布局可以通过使用RelativeLayout进行优化。我只是想知道为什么我的列表项没有正确的样式

我是否误解了主题继承的功能,或者是否有其他特定于列表的样式需要继承/覆盖

API级别7(Android 2.1)

使用HTC Evo 4G和通用AVD设备进行测试


主题定义

<style name="Theme" parent="android:Theme.Light.NoTitleBar">
  <item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item>
</style>

<style name="TextAppearance.Medium" parent="android:style/TextAppearance.Medium">
  <item name="android:textColor">@android:color/black</item>
</style>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:orientation="horizontal" android:padding="10dp">
    <TextView android:layout_width="wrap_content" android:text="TextView" android:id="@+id/jobItemDateDueTextView" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:layout_marginRight="15dp"></TextView>
    <LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="vertical">
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/jobItemHeaderTextView" android:maxLines="1" android:textAppearance="?android:attr/textAppearanceMedium"></TextView>
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/jobItemContentTextView"></TextView>
    </LinearLayout>
</LinearLayout>

@style/TextAppearance.Medium
@android:彩色/黑色
列表项布局定义

<style name="Theme" parent="android:Theme.Light.NoTitleBar">
  <item name="android:textAppearanceMedium">@style/TextAppearance.Medium</item>
</style>

<style name="TextAppearance.Medium" parent="android:style/TextAppearance.Medium">
  <item name="android:textColor">@android:color/black</item>
</style>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent" android:orientation="horizontal" android:padding="10dp">
    <TextView android:layout_width="wrap_content" android:text="TextView" android:id="@+id/jobItemDateDueTextView" android:layout_height="fill_parent" android:gravity="center" android:textStyle="bold" android:layout_marginRight="15dp"></TextView>
    <LinearLayout android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="vertical">
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/jobItemHeaderTextView" android:maxLines="1" android:textAppearance="?android:attr/textAppearanceMedium"></TextView>
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:id="@+id/jobItemContentTextView"></TextView>
    </LinearLayout>
</LinearLayout>


继续上面评论线程中的讨论,应用程序
上下文
将不会携带与您的
活动
相同的主题信息。当您需要生成UI元素的
上下文时,请使用
活动
实例。

请注意“android:textAppearance=“?android:attr/textAppearanceMedium”“列表项布局定义中的行。使用主题时,用于扩大布局的
上下文
非常重要。您在适配器中使用的是哪个
Context
?由
Activity.getApplicationContext()
提供的上下文。谢谢!这当然是问题所在。你又为我节省了无数个小时的困惑。@adamp这是一个非常好的答案,让我想知道为什么在我投第二票之前,它只投了一票。太好了。谢谢,谢谢,谢谢。