当两个在所有的groupview同时按下关闭纱厂下拉 [英] Close Spinners dropdown when two among all in a groupview are clicked simultaneously

查看:187
本文介绍了当两个在所有的groupview同时按下关闭纱厂下拉的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有几个下拉(纺纱)在我的Andr​​oid的ViewGroup。

I have several drop down (Spinners) in my Android ViewGroup.

当我尝试点击他们两个同时,他们都拿开。然而,有通过在Android的,如果一个微调器'开',你做一个地方点击,它就会被关闭默认行为:没有在听者Selected获取呼吁项目中选择监听器

When I try to click two of them simultaneously, They both get open. There is however by default behavior in Android that if a spinner is 'opened' and you do a click somewhere, it gets closed: Nothing Selected in the listener gets called on Item Selected Listener.

我想,在同时进行点击过两个纱厂,他们都不应该得到开辟。不过单选择(只有一个微调),它应该正常工作。

I want, on simultaneous click over both of the Spinners, none of them should get opened. However on single selection (one Spinner only) it should work correctly.

推荐答案

说有两个微调器,适用于两个触摸监听器。或getView()在适配器就足够了(不getDropDownView),但你想处理它们在同一个空间。

Say there are two spinners, apply on touch listener on both. or the getView() in the adapter is sufficient (not getDropDownView), but then you would like to handle them in the same space.

@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;
    }

这篇关于当两个在所有的groupview同时按下关闭纱厂下拉的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆