Dunkey
Dunkey

Reputation: 1922

Android set position in a spinner

I want to set the position for a spinner. I have a string array for the adapter, i.e,

       final String[] cat = { "Highest", "Lowest", "Most Recent"};

But I want my spinner to initially display a blank. So I tried this.

       mSpinner.setSelection(-1);

But this doesn't solve my problem. Any ideas how to do this? Help is much needed and appreciated. Thanks.

UPDATE: My code:

    private void displayDialog() {
    // TODO displayDialog
    final ArrayAdapter<String> adp = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, sortBy);

    LayoutInflater li = LayoutInflater.from(this);
    View promptsView = li.inflate(R.layout.dialog_layout, null);

    promptsView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT));

    final Spinner mSpinner= (Spinner) promptsView
            .findViewById(R.id.spDialog);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);

    builder.setTitle("Sort By...");
    builder.setIcon(R.drawable.launcher);

    mSpinner.setAdapter(adp);
    mSpinner.setSelection(-1);
    mSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> parent, View v,
            int pos, long id) {
        strSpinner = mSpinner.getSelectedItem().toString();

        if(strSpinner.equals("Highest Price")){
            highest.setTypeface(Typeface.DEFAULT_BOLD);
            lowest.setTypeface(Typeface.DEFAULT);
            location.setTypeface(Typeface.DEFAULT);
            price = dbHelper.sortHighestPrice();

            adapter = new MyCustomAdapter(imgs, text, price);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();

        } else if (strSpinner.equals("Lowest Price")){
            highest.setTypeface(Typeface.DEFAULT);
            lowest.setTypeface(Typeface.DEFAULT_BOLD);
            location.setTypeface(Typeface.DEFAULT); 
            price = dbHelper.sortLowestPrice();

            adapter = new MyCustomAdapter(imgs, text, price);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();
        } else if (strSpinner.equals("Location")) {
            highest.setTypeface(Typeface.DEFAULT);
            lowest.setTypeface(Typeface.DEFAULT);
            location.setTypeface(Typeface.DEFAULT_BOLD);
        } else {
            Log.d("Default", "Default");
        }
    }

Upvotes: 0

Views: 3577

Answers (3)

SGHOSH
SGHOSH

Reputation: 1

To set Spinner default value position to -1.

  1. Override the Spinner Class.
  2. that overrides the setAdapter() method.There you can set position to -1.

Please follow the link for details :

How to make an Android Spinner with initial text "Select One"

Upvotes: 0

Harshit Rathi
Harshit Rathi

Reputation: 1862

make your first item blank and set selection of spinner by default is 0.

Upvotes: 0

URAndroid
URAndroid

Reputation: 6277

Make your first item Blank.

final String[] cat = {"", "Highest", "Lowest", "Most Recent"};

Upvotes: 1

Related Questions