当同时单击组视图中的两个旋转器时,关闭下拉菜单



我有几个下拉(旋转器)在我的Android ViewGroup。

当我尝试同时点击其中两个时,它们都打开了。然而,Android的默认行为是,如果一个旋转器被打开,你在某个地方点击,它会被关闭:监听器中的Nothing Selected会在Item Selected listener上被调用。

我想,同时点击两个旋转器,它们都不应该被打开。然而,在单个选择(只有一个旋转器),它应该正常工作。

假设有两个旋转器,在两个上都应用触摸监听器。或者适配器中的getView()就足够了(不是getDropDownView),但是您希望在同一空间中处理它们。

@Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
        // Toast.makeText(getActivity(), v + " touched",
        // Toast.LENGTH_LONG).show();
        try {
            ActionBarActivity context = (ActionBarActivity) getActivity();
            if (context == null) {
                // Log.d(tag, "OnTouch spinner context: " + context);
                return false;
            }
            if (main_layout == null) {
                return false;
            }
            int i = v.getId();
            switch (i) {
            case R.id.spinner1: {
                Spinner spnTemp = null;
                spnTemp = (Spinner) main_layout.findViewById(R.id.spinner2);
                if (spnTemp != null) {
                    // spnTemp.setSelected(false);
//                  Log.d(tag, "OnTouch spinner spnTemp.isPressed(): " + spnTemp.isPressed());
                    if (spnTemp.isPressed()) {
                        spnTemp.setPressed(false);
                    }
                }
            }
                break;
            case R.id.spinner2: {
                Spinner spnTemp = null;
                spnTemp = (Spinner) main_layout.findViewById(R.id.spinner1);
                if (spnTemp != null) {
                    // spnTemp.setSelected(false);
//                  Log.d(tag, "OnTouch spinner spnTemp.isPressed(): " + spnTemp.isPressed());
                    if (spnTemp.isPressed()) {
                        spnTemp.setPressed(false);
                    }
                }
            }
                break;
            }
        } catch (Exception e) {
            Log.e(tag, "OnTouch spinner exception");
        }
        return false;
    }

最新更新