在我的Android应用程序中,我正在使用微调器,并且我已经将SQLite数据库中的数据加载到微调器中,并且它正常工作 . 这是代码 .
Spinner spinner = (Spinner) this.findViewById(R.id.spinner1);
List<String> list = new ArrayList<String>();
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item, list);
cursor.moveToFirst();
list.add("All Lists");
if (cursor.getCount() > 0) {
for (int i = 0; i < cursor.getCount(); i++) {
keyList[i] = cursor.getString(cursor.getColumnIndex(AndroidOpenDbHelper.KEYWORD));
list.add(keyList[i]);
cursor.moveToNext();
}
}
Database.close();
cursor.close();
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
现在我想更改微调器数据的文本颜色和文本大小 . 我在我的XML文件上使用了以下XML行到我的spinner标签,但它不起作用 .
android:textColor="@android:color/white"
android:textSize="11dp"
如何更改微调器的文本颜色和文本大小?
21 回答
为您的微调器项创建自定义XML文件 .
spinner_item.xml:
为此文件中的文本提供自定义颜色和大小 .
现在使用此文件显示您的微调器项目,如:
您无需设置下拉资源 . 只需要
spinner_item.xml
即可在微调器中显示您的商品 .简单明快......:
如果所有微调器的TextView项目可能具有相同的文本颜色,则另一种方法是为微调器下拉项目使用自定义样式:
在
res/values/styles.xml
:并在res / values / colors.xml中定义自定义颜色:
这是一个可以帮助您 change the color of the Spinner 的链接:
Click here
您需要使用微调器项 spinner_item.xml 的自定义定义创建自己的布局文件:
如果要自定义下拉列表项,则需要创建新的布局文件 . spinner_dropdown_item.xml :
最后是微调器声明的另一个变化:
而已 .
要防止滞后,您不仅需要在
onItemSelected
侦听器中设置文本属性,还需要在Activity的onCreate
方法中设置文本属性(但这有点棘手) .具体来说,您需要在设置适配器后将其放在
onCreate
中:然后把它放在
onItemSelected
中:这是一个完整的例子:
有关更多详细信息,请参阅my question .
如果您希望文本颜色仅在所选项目中更改,那么这可能是一种可能的解决方法 . 它对我有用,也适合你 .
如果您使用android.support.v7.widget.AppCompatSpinner,这是使用样式的最简单的测试解决方案:
风格:
唯一的缺点是android:backgroundTint为下拉箭头和下拉背景设置颜色 .
而不是制作自定义布局以获得小尺寸,如果您想为微调器使用Android的内部小尺寸LAYOUT,您应该使用:
“android.R.layout.simple_gallery_item”而不是“android.R.layout.simple_spinner_item” .
它可以减小微调器布局的大小 . 这只是一个简单的伎俩 .
如果要减小下拉列表的大小,请使用以下命令:
对于那些想要改变
DrowDownIcon
颜色的人,可以像这样使用对于只需
Style
方式AppCompat
的人 .Result
styles.xml
your_spinner_layout.xml
Plus
如果要以定义的样式以编程方式设置
android:entries
.试试这个 .
与在代码中一样,使用与
Spinner
相同的Context
是最重要的事情 .最简单:适合我
重新使用/更改android.R.layout资源的最简单方法就是定义 . 在Android Studio中,在android.R.layout.simple_spinner_item.xml上执行Ctrl B.
它将带您到资源文件 . 只需复制资源文件并在Package.R.layout文件夹中添加一个新布局,然后根据需要更改textview的textColor,然后在适配器中调用它,如下所示:
只是用这个:
首先,我们必须为
textview
创建简单的xml
资源文件,如下所示:并保存 . 在您的适配器列表上设置之后 .
如果您想要一个简单的方法,为了将项添加到下拉列表中,通常会将它们添加到strings.xml中 . 以下是使用strings.xml文件添加颜色的示例:
选择年龄范围
Ashraf解决方案的另一个变体是确保您考虑屏幕尺寸 . 您需要在onCreate中获取微调器并在设置适配器后设置侦听器:
然后,您可以开始更改在单击微调器之前显示的视图的文本大小:
您需要做的就是创建特定于布局的文件夹,如下所示:
一个然后在每个文件夹中添加一个名为“bool.xml”的xml文件:
我已经完成了以下操作 . 我使用了getDropDownView()和getView()方法 .
使用
getDropDownView()
打开Spinner .并使用
getView()
表示已关闭的Spinner .你可以有这种类型的微调器适配器,完全定制:
而R.layout.spinner_text是:
要更改微调文本的颜色:
可以通过覆盖getView方法更改文本颜色,如下所示:
试试这个方法 . 它对我有用 .