почему мой Android Spinner отображает переключатель в текстовом представлении?

у меня есть счетчик с адаптером массива, который динамически управляется. когда он отображается, текст счетчика также отображает переключатель. как избавиться от этого переключателя? стрелка раскрывающегося списка растянута и противна ... это моя проблема. ПРИМЕЧАНИЕ. Я не говорю о переключателях, которые появляются в списке, который отображается, когда я выбираю раскрывающийся список на счетчике.

вот соответствующий фрагмент кода... пара моментов:

  • этот код находится в конструкторе виджета, который является подклассом Spinner
  • значение представляет собой массив экземпляров объекта (передается при создании виджета)
  • нет ресурсов XML; все виджеты создаются динамически
  • думая, что мне нужно «манипулировать» подсказкой, я добавил setPrompt(...) в конструктор, а также в прослушиватель событий onitemclicked... это не имело никакого эффекта.

Вопрос: что мне не хватает? мне кажется, что мне не хватает какого-то атрибута Spinner, из-за которого переключатель также отображается в текстовой части счетчика.

-- скинуть код --

public class ChoiceGroupImpl extends Spinner implements OnItemSelectedListener {
    public ChoiceGroupImpl(Activity activity, WidgetContainer container, Value widget, AttributeImpl attributes, Object[] value, int selected) {
...
        adapter = new ArrayAdapter<CharSequence>(activity, R.layout.simple_spinner_dropdown_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        for (int i = 0; i < value.length; i++)
            adapter.add(value[i].toString());
        if (attributes.isReadonly())
            setEnabled(false);
        setAdapter(adapter);
        setSelection(selected);
        setPrompt(adapter.getItem(selected));
        setOnItemSelectedListener(this);
...
}
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        setPrompt(adapter.getItem(position));
        ((ToolkitImpl) Toolkit.getInstance()).hiddenCommand(container, "SelectionChanged");
    }
...

-- код конца фрагмента --


person Sheshadri Mantha    schedule 27.10.2010    source источник
comment
Ой! Кстати: я не переопределяю ни один из макетов просмотра, методы рисования.   -  person Sheshadri Mantha    schedule 28.10.2010


Ответы (2)


Если вы хотите сохранить переключатель в счетчике, но не в текстовом представлении, сделайте следующее:

adapter = new ArrayAdapter<CharSequence>(activity, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
person Tito    schedule 06.12.2011
comment
Это более полное решение, ИМО. - person Ken; 25.01.2012
comment
Проблема с этим решением заключается в том, что флажок отображается во время подсветки onClick. - person Florian Barth; 11.12.2012

используйте simple_spinner_item вместо simple_spinner_dropdown_item при создании адаптера

adapter = new ArrayAdapter<CharSequence>(activity, R.layout.simple_spinner_item);
person franklins    schedule 27.10.2010
comment
Ах! что сделал это! кажется достаточно простым, неудивительно, что я пропустил это! Спасибо - person Sheshadri Mantha; 28.10.2010