Почему мой Android Spinner отображает переключатель в текстовом представлении? - PullRequest
7 голосов
/ 27 октября 2010

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

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

  • этот код находится в конструкторе виджета, который является подклассом 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");
    }
...

- конечный отрывной код -

Ответы [ 2 ]

18 голосов
/ 06 декабря 2011

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

adapter = new ArrayAdapter<CharSequence>(activity, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
14 голосов
/ 27 октября 2010

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

adapter = new ArrayAdapter<CharSequence>(activity, R.layout.simple_spinner_item);
...