Home » Android » android – Set text of spinner before item is selected

android – Set text of spinner before item is selected

Posted by: admin June 15, 2020 Leave a comment

Questions:

I have a spinner with three items and I use an XML string-array resource to feed it. When you open an activity the spinner normally shows the first item that’s in the array list. I’d like to change that and show the text “Select one” in the spinner, before an item is selected.

How can I do that?

How to&Answers:

You can do that one of two ways.

1) Add “Select One” as the first item in your xml and code your listener to ignore that as a selection.

2) Create a custom adapter to insert it as the first line,

EDIT

In your resources

<string-array name="listarray">
    <item>Select One</item>
    <item>Item One</item>
    <item>Item Two</item>
    <item>Item Three</item>
</string-array>

In your onItemSelected Listener:

spinnername.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
    public void onNothingSelected(AdapterView<?> parent) {
    }
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        if (pos == 0) {
        }else {
            // Your code to process the selection
        }
    }
});

Answer:

To set a default text for the spinner you have to use android:[email protected]/SelectOne for your spinner Where SelectOne is defined in your string.xml .

Example :

<Spinner android:id="@+id/spinnerTest"  
 android:layout_marginLeft="50px"
 android:layout_width="fill_parent"                  
 android:drawSelectorOnTop="true"
 android:layout_marginTop="5dip"
 android:prompt="@string/SelectOne"
 android:layout_marginRight="30px"
 android:layout_height="35px" 
/>