我有一个使用标签进行导航的应用,其中一个标签上有一个微调器。但是,当选择微调器并且实际选择窗口出现时,所有文本在白色背景上都是白色的。 我尝试了布局样式,但我没做什么改变了字体的颜色。
主要班级
public class RealmsOfWickedry extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab);
TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid1");
firstTabSpec.setIndicator("Home").setContent(new Intent(this,FirstTab.class));
secondTabSpec.setIndicator("Catalog").setContent(new Intent(this,SecondTab.class));
tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
}
public static View makeSpinner(Context context) {
View v = LayoutInflater.from(context).inflate(R.layout.spinner, null);
Spinner spinner = (Spinner) v.findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_dropdown_item);
adapter.add("Item 1");
adapter.add("Item 2");
adapter.add("Item 3");
adapter.add("Item 4");
spinner.setAdapter(adapter);
return v;
}
}
带有微调器的类
public class SecondTab extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* Second Tab Content */
TextView textView = new TextView(this);
textView.setText("Choose a Category");
setContentView(textView);
setContentView(RealmsOfWickedry.makeSpinner(getParent()));
}
}
tab.xml
<?xml version="1.0" encoding="utf-8"?>
<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost">
<LinearLayout android:id="@+id/LinearLayout01"
android:orientation="vertical" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TabWidget android:id="@android:id/tabs"
android:layout_height="wrap_content" android:layout_width="fill_parent"></TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_height="fill_parent" android:layout_width="fill_parent"></FrameLayout>
</LinearLayout>
</TabHost>
spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/cat_prompt"
android:theme="@style/DropdownStyle"
/>
</LinearLayout>
的themes.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="OverallStyle" parent="@android:Theme.Light">
<item name="android:windowBackground">@drawable/bg</item>
<item name="android:textColor">@color/white</item>
</style>
<style name="WelcomeStyle" parent="@android:Theme.Light">
<item name="android:typeface">monospace</item>
<item name="android:gravity">center</item>
</style>
<style name="CustomStyle" parent="@android:Theme.Light">
<item name="android:typeface">monospace</item>
<item name="android:gravity">top</item>
</style>
<style name="DropdownStyle" parent="@android:Theme.Light">
<item name="android:textColor">@color/red</item>
</style>
</resources>
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
看起来你正试图覆盖系统主题以显示不同的颜色,这是正确的路径。你的微调器xml包含对android:theme
的引用我之前没有看到过它,它似乎不是这个小部件的API的一部分。要使DropdownStyle正常工作,首先,将其添加为OverallStyle样式的一部分,项目名称为@android:attr/spinnerDropDownItemStyle
。其次,将DropdownStyle的父级更改为@android:Widget.DropDownItem.Spinner
。我假设OverallStyle已经应用于Manifest中的Activity或Application。这将改变所有Spinner下拉项的样式。
要仅应用于此视图的下拉项,请仅执行上面的第二步,然后将style="@style/OverallStyle"
添加到其布局中的微调器。
其他信息:
<style name="DropdownStyle" parent="@android:Widget.DropDownItem.Spinner">
<item name="android:textColor">@color/red</item>
</style>
<style name="OverallStyle" parent="@android:Theme.Light">
<item name="android:windowBackground">@drawable/bg</item>
<item name="@android:attr/spinnerDropDownItemStyle">@style/DropdownStyle</item>
<item name="android:textColor">@color/white</item>
</style>
<强> -OR - 强>
的themes.xml
<style name="DropdownStyle" parent="@android:Widget.DropDownItem.Spinner">
<item name="android:textColor">@color/red</item>
</style>
spinner.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:prompt="@string/cat_prompt"
style="@style/DropdownStyle"
/>
</LinearLayout>