why does my android spinner display the radio button in the textview?
Asked Answered
J

2

7

i have a spinner with an arrayadapter that is dynamically managed. when it gets displayed, the spinner text also displays the radio button. how do i get rid of this radio button? the drop down arrow is all strecthed and yucky... thats my problem. NOTE: i'm not talking about the radio buttons that appear in the list that is displayed when i select the drop down on the spinner.

here are the appropriate code snippet... couple of points:

  • this code is in the constructor of widget which is a subclass of Spinner
  • value is an array of Object instances (passed when the widget gets created)
  • there are no XML resources; all widgets are dynamically created
  • thinking i need to "manipulate" the prompt, i added setPrompt(...) in the constructor and also in the onitemclicked event listener... this had no effect.

Q: what am i missing? seems to me i'm missing some attribute of the Spinner which is causing the radio button to also display in the text part of the spinner.

-- snip code --

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");
    }
...

-- end snip code --

Jasper answered 27/10, 2010 at 18:34 Comment(1)
Oh! BTW: I'm not overriding any of the View layout, draw methods.Jasper
I
17

If you want to keep radio button in the spinner, but not in the textview then do this:

adapter = new ArrayAdapter<CharSequence>(activity, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Indiscipline answered 6/12, 2011 at 15:30 Comment(2)
This is a more complete solution, IMO.Picardi
Problem with this solution is the checkbox being visible during the onClick-highlightingBettencourt
H
14

use simple_spinner_item instead of simple_spinner_dropdown_item while creating your adapter

adapter = new ArrayAdapter<CharSequence>(activity, R.layout.simple_spinner_item);
Herzig answered 27/10, 2010 at 18:43 Comment(1)
Ah! that did it! seems simple enough no wonder i missed it! THXJasper

© 2022 - 2024 — McMap. All rights reserved.