Стиль настройки Android для программно созданного счетчика

У меня есть счетчик, который создается программно следующим образом:

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'


person dec0yable    schedule 29.04.2016    source источник
comment
У вас действительно есть макет xml с именем spinner_underlined? Возможно, находится в папке вашего макета? Если да, то попробуйте удалить там android..   -  person AL.    schedule 29.04.2016
comment
что такое android.R.layout.spinner_underlined, у вас была ссылка на это, пожалуйста, объясните это. я думаю, вы никогда не определяете стиль spinner_underlined в style.xml ??   -  person Nowshad    schedule 29.04.2016
comment
попробуйте этот android.R.layout.simple_spinner_item вместо android.R.layout.spinner_underlined посмотрим, что произошло после этого, тогда мы движемся дальше....!   -  person Nowshad    schedule 29.04.2016
comment
Я попытался заменить android.R.layout.simple_spinner_dropdown_item на spinner_underlined, и это изменило элементы раскрывающегося списка на правильный стиль, но не сам счетчик.   -  person dec0yable    schedule 29.04.2016
comment
здесь для стиля счетчика вы найдете больше примеров стиля, попробуйте этот ссылка   -  person Nowshad    schedule 29.04.2016
comment
не делайте ничего лишнего, просто сосредоточьтесь на стиле!   -  person Nowshad    schedule 29.04.2016
comment
Я не понимаю информацию по ссылке. в ссылке спиннер создан в xml. Спиннер, который я использую, создан программно. так что я уже установил spinneradapter на счетчик, и я не думаю, что вы можете установить несколько адаптеров?   -  person dec0yable    schedule 29.04.2016
comment
о, извините, это была неправильная ссылка, попробуйте эту, надеюсь, она вам поможет!   -  person Nowshad    schedule 29.04.2016
comment
очень жаль, но я не вижу, где он применяет стиль к самому счетчику. Все, что я пытаюсь сделать, это взять стиль, который существует в Android (@style/Widget.AppCompat.Spinner.Underlined), и установить его на программно созданный счетчик. Это действительно должно быть так сложно?   -  person dec0yable    schedule 29.04.2016


Ответы (1)


Вам нужно изменить на R.layout...., а не на android.R.layout....

person mdtuyen    schedule 29.04.2016
comment
где это установить? потому что он запрашивает макет типа в адаптере - person dec0yable; 29.04.2016
comment
@dec0yable Вы не знаете, почему ArrayAdapter ищет параметр макета? - person AL.; 29.04.2016
comment
извините, я обновляю ответ, я не могу найти макет spinner_underlined в библиотеке Android. Я думаю, что это ваш макет. Вы должны импортировать свой R.java в файл класса - person mdtuyen; 29.04.2016
comment
Извините, я пользователь Android-самоучки (я даже не осмеливаюсь называть себя программистом), поэтому я не знаю, что вы имеете в виду под этим - person dec0yable; 29.04.2016