【发布时间】:2016-04-29 14:59:38
【问题描述】:
我有一个像这样以编程方式创建的微调器:
spinnerLogger = new Spinner(context);
spinnerLogger.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
SpinnerAdapter spinnerAdapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_dropdown_item, spinnerNames);
spinnerLogger.setAdapter(spinnerAdapter);
在我的代码中,我还使用 xml 创建的微调器,它使用一种样式来确保用户理解他们是微调器:
<Spinner
android:layout_width="90dp"
android:layout_height="wrap_content"
android:id="@+id/spinnerHour"
android:spinnerMode="dropdown"
style="@style/Widget.AppCompat.Spinner.Underlined" />
我想将Widget.AppCompat.Spinner.Underlined 样式应用于以编程方式创建的微调器,但似乎找不到如何实现这一点。
我尝试创建一个只包含正确样式的微调器的 xml(xml 的名称是 spinner_underlined,它位于布局文件夹中):
<?xml version="1.0" encoding="utf-8"?>
<Spinner android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinner"
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/Widget.AppCompat.Spinner.Underlined"/>
当我尝试使用
SpinnerAdapter spinnerAdapter = new ArrayAdapter<>(context, android.R.layout.spinner_underlined, spinnerNames);
它给了我一个cannot resolve symbol 'spinner_underlined' 错误
【问题讨论】:
-
你真的有一个名为
spinner_underlined的xml布局吗?可能位于您的布局文件夹中?如果是这样,请尝试删除那里的android.。 -
什么是 android.R.layout.spinner_underlined 你对此有任何参考请解释一下。我想你从来没有在 style.xml 中定义 spinner_underlined 样式??
-
试试这个 android.R.layout.simple_spinner_item 而不是 android.R.layout.spinner_underlined 让我们看看之后发生了什么然后我们更进一步......!
-
我尝试将
android.R.layout.simple_spinner_dropdown_item替换为spinner_underlined并将下拉项更改为正确的样式,但不是微调器本身 -
这里是微调器样式,您会发现更多样式示例试试这个link