android - 微调器 setOnItemSelectedListener 不触发

标签 android spinner

我有一个 View 对象,其中包含一个编辑文本、一个不可见的微调器和一个按钮。我通过 LayoutInflater 加载 View ,它显示出来并且一切正常。我按下按钮,微调器列表出现,我选择了我想要的项目。我的问题是微调器的 setOnItemSelectedListener 没有触发,所以我无法将编辑文本设置为所选值。

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, listItems); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

                        Spinner spn = (Spinner)sEdit.findViewWithTag("spn"+fieldID);
                        final String spnHolder = "spn"+fieldID;

                        spn.setAdapter(adapter);
                        ImageButton bSpn = (ImageButton)sEdit.findViewWithTag("btn"+fieldID);
                        bSpn.setOnClickListener(new OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                curVw = (EditText)sEdit.findViewWithTag(v.getTag().toString().split("btn")[1]);
                                ((Spinner)sEdit.findViewWithTag(spnHolder)).performClick();
                            }

                        });

                        try {
                            spn.setOnItemSelectedListener(new OnItemSelectedListener() {
                                @Override
                                public void onItemSelected(AdapterView<?> arg0, View arg1,
                                        int arg2, long arg3) {
                                    curVw.setText(((TextView)arg1).getText().toString());
                                }

                                @Override
                                public void onNothingSelected(AdapterView<?> arg0) {
                                    // TODO Auto-generated method stub

                                }
                            });
                        }
                        catch (Exception ex) 
                        {
                            ex.printStackTrace();
                        }

我添加了一个 Try...Catch 来查看它是否只是在那个点之后失败了,但它从未被调用。

最佳答案

请使用:

而不是使用 SetOnclickListener
spn.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

   //implements methods and perform your action. This will works definately
};

关于android - 微调器 setOnItemSelectedListener 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729208/

相关文章:

android - ViewPager 在空白区域内触摸时闪烁

android - 如何在android中创建一个微调器?

android - 在 ActionBar/ActionBarSherlock 中以编程方式显示下拉列表

android - 将文本设置为居中适用于一个微调器,但不适用于其他微调器

javascript - 停止 Angular 2 中旋转数的解决方案

android - Roman Nurik 的 Wizard pager - 如何访问收集的数据?

java - Android 应用程序和 AsyncTask 未按预期运行

android - 如何通过在android中选择它们来从sd卡上传图像

java - 如何在订阅开始时显示对话框?

python - 如何将微调器值设置为等于 kivy 中 python 方法的输出列表