Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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 --

like image 463
Sheshadri Mantha Avatar asked Oct 27 '10 18:10

Sheshadri Mantha


People also ask

How do I uncheck a radio button?

To set a radio button to checked/unchecked, select the element and set its checked property to true or false , e.g. myRadio. checked = true . When set to true , the radio button becomes checked and all other radio buttons with the same name attribute become unchecked.

What is the difference between a RadioGroup and radio button?

In Android, RadioButton are mainly used together in a RadioGroup. In RadioGroup checking the one radio button out of several radio button added in it will automatically unchecked all the others. It means at one time we can checked only one radio button from a group of radio buttons which belong to same radio group.


2 Answers

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);
like image 118
Tito Avatar answered Dec 14 '22 12:12

Tito


use simple_spinner_item instead of simple_spinner_dropdown_item while creating your adapter

adapter = new ArrayAdapter<CharSequence>(activity, R.layout.simple_spinner_item);
like image 26
franklins Avatar answered Dec 14 '22 12:12

franklins