我有一个Spinner并使用ArrayAdapter.在适配器中我使用“android.R.layout.simple_list_item_1”,如下所示:
spinnerControlObjectType.setAdapter(new ArrayAdapter(getApplicationContext, android.R.layout.simple_list_item_1, list))
我查看了android.R.layout.simple_list_item_1并看到它有这样的文本样式:
机器人:textAppearance = “机器人:ATTR / textAppearanceListItemSmall”
我想在我的主题中覆盖“textAppearanceListItemSmall”以赋予它不同的颜色,我该怎么做?我不想继承任何东西或编写代码样板.我确信有一种方法可以改变颜色,只更改theme.xml.
在android文档中,它写成:’…引用一个样式属性实质上说,“在当前主题中使用由此属性定义的样式.”……(http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes).他们说“已定义”和“在当前主题中” – 我如何在当前主题中定义它?让我疯了……
解决方法:
为您的微调器项创建自定义XML文件
spinner_layout.xml
添加自定义颜色
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_spinner"
android:textSize="16sp"
android:text="HELLO"
android:padding="10dp"
android:textColor="@color/colorAccent"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
使用此文件显示您的微调器项目
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.spinner_layout,ar);
mSpinner.setAdapter(adapter);