从Android上的ImageButton打开微调器下拉菜单

从Android上的ImageButton打开微调器下拉菜单,android,spinner,android-imagebutton,Android,Spinner,Android Imagebutton,我的布局包含一个微调器和一个ImageButton。 微调器设置正确。按下该按钮将显示下拉菜单。 现在我尝试在我的按钮上添加onClick操作,以便它可以打开微调器 以下代码: this.imageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { spinner.performClick();

我的布局包含一个微调器和一个ImageButton。 微调器设置正确。按下该按钮将显示下拉菜单。 现在我尝试在我的按钮上添加onClick操作,以便它可以打开微调器

以下代码:

this.imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            spinner.performClick();
        }
    });
在genymotion emulator上运行良好,但在我的Nexus 4&6设备上不起作用。 在这些设备上,下拉菜单打开,然后自动关闭。每10-20次尝试,它可能会保持打开状态,但仅此而已

知道发生了什么吗? 我怎样才能防止这种情况


编辑如果我启用android:spinnerMode=“dialog”而不是默认的“dropdown”,它可以正常工作,好像有什么东西从微调器中获取了焦点。。。奇怪的是,通过按下微调器打开下拉菜单效果很好

final Spinner spinner = (Spinner) findViewById(R.id.spinner);
Button okButton = (Button) findViewById(R.id.yesButton);
okButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        if(spinner.getSelectedItem() == null) { // user selected nothing...
            spinner.performClick();
        }
    }
});

这里是希望之源,所以它是有效的

final Spinner spinner = (Spinner) findViewById(R.id.spinner);
Button okButton = (Button) findViewById(R.id.yesButton);
okButton.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        if(spinner.getSelectedItem() == null) { // user selected nothing...
            spinner.performClick();
        }
    }
});

请检查我的问题。如你所见,我已经发布了有趣的代码…请检查我的问题。正如你所看到的,我已经发布了有趣的代码……这已经是我正在使用的(请参阅我问题中的代码)。它工作正常,但下拉菜单会在几秒钟后自动关闭,当这样打开时(请参阅我的编辑),这已经是我正在使用的(请参阅我问题中的代码)。它工作得很好,但是当这样打开时,下拉菜单会在几分之一秒后自动关闭(请参见我的编辑)