How to Set Spinner Default Value to Null

How to set Spinner default value to null?

is it possible have a spinner that loads with nothing selected

Only if there is no data. If you have 1+ items in the SpinnerAdapter, the Spinner will always have a selection.

Spinners are not designed to be command widgets. Users will not expect a selection in a Spinner to start an activity. Please consider using something else, like a ListView or GridView, instead of a Spinner.


EDIT

BTW, I forgot to mention -- you can always put an extra entry in your adapter that represents "no selection", and make it the initial selected item in the Spinner.

How to set my first value (default value) in spinner as empty

i found out the way. Here is how we do it, let the last line be

list.add("");

and add below code :

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_spinner_item, list) {

@Override
public View getView(int position, View convertView, ViewGroup parent) {

View v = super.getView(position, convertView, parent);
if (position == getCount()) {
((TextView)v.findViewById(android.R.id.text1)).setText("");
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount())); //"Hint to be displayed"
}

return v;
}

@Override
public int getCount() {
return super.getCount()-1; // you don't display last item. It is used as hint.
}

};

adapter.setDropDownViewResource(R.layout.custom_spinner_list);
spinner.setAdapter(adapter);
spinner.setSelection(adapter.getCount()); //set the hint the default selection so it appears on launch.
spinner.setOnItemSelectedListener(this);
notifyDataSetChanged();

How to remove default value in spinner android?

Use the ArrayAdapter and Override the method - getDropDownView..

ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, lables){
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {

View v = null;

if (position == 0) {
TextView tv = new TextView(getContext());
tv.setHeight(0);
tv.setVisibility(View.GONE);
v = tv;
}
else {

v = super.getDropDownView(position, null, parent);
}

parent.setVerticalScrollBarEnabled(false);
return v;
}
};

Use the above mentioned code and remove the default value in the dropdown.

Android Spinner - How to default list selection to none

My data-sizes.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="chunks">
<item>2</item>
<item>4</item>
<item>8</item>
<item>16</item>
<item>32</item>
</string-array>
</resources>

In main.xml:

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

In Java Code:

Spinner spinnerSize;
ArrayAdapter adapter;

...

spinnerSize = (Spinner)findViewById(R.id.spinnerSize);
adapter = ArrayAdapter.createFromResource(this, R.array.chunks, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerSize.setAdapter(adapter);
spinnerSize.setOnItemSelectedListener(new MyOnItemSelectedListener());

...

class MyOnItemSelectedListener implements OnItemSelectedListener {

public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
chunkSize = new Integer(parent.getItemAtPosition(pos).toString()).intValue();
}
public void onNothingSelected(AdapterView<?> parent) {
// Dummy
}
}

So, although I can see 2 as my first default item, nothing happens unless user actually selects it.

Hope this helps!

How to set default value for spinner in android

Use this

spinner.setSelection(position);//to set default values

To get selected value use this

spinner.getSelectedItem();

Hi in your library you can use this

spinner.setSelectedIndex(2); 

Set Spinner to Unselected

spinners have to have a selected state. i would recommend having a "no selection" option

Another option is to have the bottom button selected and then set that one to be invisible (the reason i set the last one to selected is so that you dont have a chunk of blank space in your app as that looks a bit trashy):

case SPINNER_OPTION_FIRST:
yourSpinnerLabel.setVisibility(View.VISIBLE);
yourTextField.setVisibility(View.VISIBLE);
break;

// do this for all your other ones if you want

case SPINNER_OPTION_LAST:
yourSpinnerLabel.setVisibility(View.GONE);
yourTextField.setVisibility(View.GONE);

maybe not the most efficient but it works so i hope that helps (still new so cut me some slack)!



Related Topics



Leave a reply



Submit