android - 以编程方式添加的 Spinner 的 OnItemSelectedListener 不会触发

标签 android spinner onitemclicklistener

我有一个以编程方式打开的微调器。它弹出并且似乎工作正常,但由于某种原因我的 OnItemSelectedListener 没有触发其中的任何事件。

public class BeerConverter extends Activity {

    ArrayAdapter<CharSequence> adapter3;
    Spinner spinner03;


    @Override
    public void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        spinner03 = new Spinner(this);
        adapter3 = new ArrayAdapter<CharSequence> (this, android.R.layout.simple_spinner_item);
        adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

        spinner03.setAdapter(adapter3);

        spinner03.setOnItemSelectedListener(new MyOnItemSelectedListener3());
        adapter3.add("Stuff");
        spinner03.performClick();

        }

然后我将监听器创建为嵌套类:

public class MyOnItemSelectedListener3 implements OnItemSelectedListener {

    public void onItemSelected(AdapterView<?> parentview, View v,int position, long id){
        curPos = position;
        Context context = getApplicationContext();
        CharSequence text = "Test text. If you see this, it means MyOnItemSelectedListener3 was called.";
        int duration = Toast.LENGTH_SHORT;
        Toast toast = Toast.makeText(context, text, duration);
        toast.show();

    }

    public void onNothingSelected(AdapterView<?> arg0) 
    {
        //do nothing
    }
};

因此,当我发送 spinner03.performClick(); 时,Spinner 会正确弹出,但是当选择 Spinner 中的项目时,它只是关闭并且不会调用 OnItemSelectedListener。看起来像 this person had the same problem不久前,但最终没有发布解决方案。

最佳答案

正如上面的评论线程所暗示的,如果相关 View 未附加到窗口,则与 View 相关的许多(如果不是全部)事件将不会按照您的预期运行。不要使用独立的 View 来驱动任何类型的用户交互。

关于android - 以编程方式添加的 Spinner 的 OnItemSelectedListener 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635732/

相关文章:

android - 将 Stripe 库导入 Eclipse 时出错

java - 使用java设置Spinner的宽度而不引用任何xml

java - 在android后台下载图像

android - 是否有与 Widget.Material.Spinner.Underlined 等效的 AppCompat?

java - 当 PagerAdapter 没有可显示的内容时,如何在 ViewPager 中显示微调器?

java - GridView.getItemAtPosition 始终为 null(但列表显示项目)

android - 如何使用 Android onItemClick 获取 ListView 项?

android - 如何解决pdfbox中的 "No glyph for U+000A in font Helvetica-Bold"(android端口)

java - 如何正确引用 Spinner 条目?

java - ViewRootImpl : ViewPostImeInputStage processPointer 0 on OnItemClick of Listview in android