簡體   English   中英

當同時單擊一個組視圖中的兩個視圖時,關閉“微調器”下拉列表

[英]Close Spinners dropdown when two among all in a groupview are clicked simultaneously

我的Android ViewGroup中有幾個下拉菜單(Spinners)。

當我嘗試同時單擊兩個時,它們都打開。 但是,默認情況下,Android中的行為是:如果微調器被“打開”並且您在某個位置單擊,它會被關閉:偵聽器中未選中的任何內容都不會在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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM