如何根据最近选择的微调器值动态更改文本框值?

时间:2017-09-11 10:49:03

标签: java android dynamic spinner

Here is screenshot ...my changes in spinner value reflects only after 2 swipes 我有一个有10个屏幕的应用程序,我的主要活动中有1个微调器和片段中的文本框。我想在文本框中显示最近选择的微调器值。

我编写了一个代码,在我的文本框中显示所选的微调器值,并在整个屏幕上变得稳定。但我不知道如何根据最近选择的微调器值动态更改文本框值。 (在downvoting之前请告诉我一些解决方案

以下是获取微调器值

的代码
String pos = (String) spinner.getSelectedItem();
        SharedPreferences sharedPref = getSharedPreferences("Mode", Activity.MODE_PRIVATE);
        SharedPreferences.Editor prefEditor = sharedPref.edit();
        prefEditor.putString("userChoicemode", pos);
        prefEditor.commit();

以下是检索它的代码

TextView modeselect = (TextView) view.findViewById(R.id.pass);

        SharedPreferences sharedPref = this.getActivity().getSharedPreferences("Mode", Activity.MODE_PRIVATE);
        String get = sharedPref.getString("userChoicemode",selected);

        modeselect.setText("" + get);

4 个答案:

答案 0 :(得分:0)

试试这个

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

                    String selectedText = parent.getItemAtPosition(position).toString()

                    // Set your TextView here
                    myTextView.setText(selectedText);
                }

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

                }
            });

如果您的TextView位于不同的片段中,请点击此链接Communication between Activity and Fragment

答案 1 :(得分:0)

请致电以下方法

IQueryable

以上方法调用列表设置到微调器时,每当用户从微调器中选择任何项时,您也可以通过调用getSelectedItem()从按钮单击获取微调器值,或者只有当用户从中选择项时才能获取文本微调器你必须调用上面的覆盖方法

答案 2 :(得分:0)

您可以调用微调器的setOnItemSelectedListener

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

                 modeselect.setText(spinner.getSelectedItem().toString());
                 //or 
                 //modeselect.setText(adapterView.getItemAtPosition(i));

                }

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

                }
            });

答案 3 :(得分:0)

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {

             textView.setText(spinner.getSelectedItem().toString());


            }

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

            }
        });