Skip to content Skip to sidebar Skip to footer

Android Spinner Doesn't Showing Last Selected Item

But i am not able to find the solution for this. I know this may be asked before. But it is really different from other issues. I am trying to implement one spinner on a stack card

Solution 1:

Actually you are assigning same id for two different variable

_listSpinner=(Spinner)convertView.findViewById(R.id.listSpinner);

and

Spinnerspinner= (Spinner) convertView.findViewById(R.id.listSpinner);

and also creating 2 different adapter for same spinner please avoid duplicate it solve yous problem.

Solution 2:

Create a custom layout for your spinner item...

spinner_item.xml

<?xml version="1.0" encoding="utf-8"?><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="15sp"android:textColor="#000000" >

Now use it in your adapter:

Spinner spinner = (Spinner) convertView.findViewById(R.id.listSpinner);
    ArrayAdapter<String> adapter = newArrayAdapter<String>(getActivity(), R.layout.spinner_item, SpinnerOptions);
    adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
    spinner.setAdapter(adapter);
    //adapter.notifyDataSetChanged();
    spinner.setOnItemSelectedListener(this);

Second way

force the spinner to setselection using spinner.setSelection()

spinner.setOnItemSelectedListener(newAdapterView.OnItemSelectedListener() {
        @OverridepublicvoidonItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
            Toast.makeText(parentView.getContext(), "Selected ---: " + SpinnerOptions.get(position), Toast.LENGTH_LONG).show();

            if (position == 0) {
                spinner.setSelection(((ArrayAdapter<String>) spinner.getAdapter()).getPosition("Male"));
            } else {
                spinner.setSelection(((ArrayAdapter<String>) spinner.getAdapter()).getPosition("Female"));
            }

        }

        @OverridepublicvoidonNothingSelected(AdapterView<?> parentView) {
            Log.d("Log", "Called");
            spinner.setSelection(((ArrayAdapter<String>) spinner.getAdapter()).getPosition("Female"));
        }
    });

in this case you don't need spinner.setOnItemSelectedListener(this);

Post a Comment for "Android Spinner Doesn't Showing Last Selected Item"