我怎样才能从android中的spinner中选择一个值

时间:2016-03-24 14:45:05

标签: android android-spinner

我有一个10个数字0-10的微调器,如果有人选择一个号码,我希望他不能再次选择相同的值。因此,在ItemSelected中,我执行以下操作,但没有结果

@Override
        public void onItemSelected(AdapterView<?> adapter, View v, int position, long id) {
            // On selecting a spinner item
            if (position > 0 && position!=tempPosition)
            {
                TeamSpinnerNumber = adapter.getItemAtPosition(position).toString();
             tempPosition = position
            }


        }

2 个答案:

答案 0 :(得分:2)

检查这个我为你做的可能对你有所帮助。

 public class MainActivity extends AppCompatActivity {

        ArrayList<String> mStrings;
        ArrayAdapter<String> mStringArrayAdapter;
        Spinner mSpinner;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mSpinner = (Spinner) findViewById(R.id.spinner);
            mStrings = new ArrayList<String>() {{
                add("None");
                add("one");
                add("two");
                add("three");
            }};
            mStringArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings);
            mSpinner.setAdapter(mStringArrayAdapter);
            mSpinner.setSelection(0);
            mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                    String string = parent.getItemAtPosition(position).toString();
                    if (!string.equals("None"))
                        removeThisFromSpinner(string);
                    mSpinner.setSelection(0);
                }

                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });


        }

        private void removeThisFromSpinner(String s) {
            mStrings.remove(s);
            mStringArrayAdapter.notifyDataSetChanged();
        }

    }

答案 1 :(得分:0)

试试这个,希望它有所帮助:

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Log.i(TAG, "onItemSelected: "+position);
//checking the position of the selected spinner item, if the previous position is not the same then do something here
                    if(position>0 && position!=myPosition){

                    }
                   myPosition = position;



            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

并且不要忘记将全局变量添加到班级中:

int myPosition = 999; // the non existed position make it global variable