ANDROID spinner doesn't showing last selected item

后端 未结 2 1456
别跟我提以往
别跟我提以往 2020-12-21 15:07

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

2条回答
  •  星月不相逢
    2020-12-21 16:03

    Create a custom layout for your spinner item...

    spinner_item.xml

    
        
    

    Now use it in your adapter:

        Spinner spinner = (Spinner) convertView.findViewById(R.id.listSpinner);
        ArrayAdapter adapter = new ArrayAdapter(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(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(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) spinner.getAdapter()).getPosition("Male"));
                } else {
                    spinner.setSelection(((ArrayAdapter) spinner.getAdapter()).getPosition("Female"));
                }
    
            }
    
            @Override
            public void onNothingSelected(AdapterView parentView) {
                Log.d("Log", "Called");
                spinner.setSelection(((ArrayAdapter) spinner.getAdapter()).getPosition("Female"));
            }
        });
    

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

提交回复
热议问题