Android 出现下拉列表上的微调器事件

Android 出现下拉列表上的微调器事件,android,spinner,Android,Spinner,我想对下拉列表的外观执行一些操作 我找不到任何方法来获取“onShowListener” 有这样一个侦听器吗?setOnItemSelectedListener可用,它将为您提供所选项目 spinner.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<

我想对
下拉列表的外观执行一些操作

我找不到任何方法来获取“onShowListener”


有这样一个侦听器吗?

setOnItemSelectedListener可用,它将为您提供所选项目

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> arg0,
                            View arg1, int arg2, long arg3) {

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

                    }
                });
spinner.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0,
视图arg1、整数arg2、长arg3){
}
@凌驾
未选择公共无效(AdapterView arg0){
}
});

您可以通过使用自己的SpinnerAdapter来实现这一点

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
    // Hide the keyboard here
}
此方法仅在微调器出现时调用


您可以找到一个自定义SPinnerAdapter的示例,最简单的解决方案是使用。但它可能会给你带来一些不必要的副作用,因为当你点击一个列表项时,它也会被调用

顺便说一句,您不能设置OnClickListener,因为它会出现以下异常:

“java.lang.RuntimeException:不要为AdapterView调用setOnClickListener。您可能需要setOnItemClickListener代替”


您是否尝试添加setOnClickListener,然后检查微调器是否显示

我不在乎选择了哪个项目,我想在为屏幕上的每个可见项目调用微调器AppearGetDropDownView时隐藏键盘。我不想让我的show方法称为gazilion times;)
        spinner.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Hide your Keyboard
            return false;
        }
    });