【问题标题】:android Setting style to programmatically created spinnerandroid将样式设置为以编程方式创建的微调器
【发布时间】: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

标签: android xml spinner


【解决方案1】:

您需要更改为R.layout.... 而不是android.R.layout....

【讨论】:

  • 我在哪里设置这个?因为它要求适配器中的类型布局
  • @dec0yable 你不知道ArrayAdapter为什么要找一个布局参数吗?
  • 对不起,我更新了答案,我在 android 库上找不到 spinner_underlined 布局。我认为这是你的布局。你应该将你的 R.java 导入到类文件中
  • 对不起,我是一个自学成才的android(我什至不敢称自己为程序员)用户,所以我不知道你的意思
猜你喜欢
  • 1970-01-01
  • 2015-09-23
  • 2011-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 2012-06-19
  • 2020-09-13
相关资源
最近更新 更多