如何在更新调用期间获取选定的微调器值?

时间:2016-02-10 05:18:35

标签: android android-spinner

我有一个列表,我在其中输入数据,并从微调器中选择一个值。假设我想从微调器中选择一个不同的值,在选择新值之前如何在微调器中首先显示先前选择的值?

这是我最初选择的值

enter image description here

在我选择一个新值之前,微调器应包含我之前选择的值。

enter image description here

2 个答案:

答案 0 :(得分:0)

edt_dress_code.getSelectedItem().toString()
get selected item value 

答案 1 :(得分:0)

请参阅此示例代码: -

在MainActivity.xml中

 <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

在MainActivity.Java中

private ArrayAdapter<String> spinnerArrayAdapter;

在适配器中初始化微调器项目

final List<String> items = new ArrayList<>();
        items.add("Select an item");
        items.add("Item1");
        items.add("Item2");
        items.add("Item3");
        items.add("Item4");
        items.add("Item5");

        final Spinner spinner = (Spinner) findViewById(R.id.spinner);
        spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
        spinner.setAdapter(spinnerArrayAdapter); 

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                try {
                    if (position > 0) {

                        if (position == spinnerArrayAdapter.getPosition("Item5")) {
                            String previousSelectedITem = (String) spinner.getSelectedItem();
                            items.clear();
                            spinnerArrayAdapter.notifyDataSetChanged();
                            items.add("Select an item");
                            items.add("Item1");
                            items.add("Item3");
                            items.add("Item5");
                            items.add("Item7");
                            items.add("Item9");
                            spinnerArrayAdapter.notifyDataSetChanged();
                            spinner.setSelection(spinnerArrayAdapter.getPosition(previousSelectedITem));
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

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

            }

        });

在选择“Item5”的情况下,我正在更新微调器项目,并选择之前选择的值。