Android需要从弹出菜单中选择一个选项

Android需要从弹出菜单中选择一个选项,android,option,popupwindow,togglebutton,Android,Option,Popupwindow,Togglebutton,在Android中,有没有一种方法要求用户从弹出菜单中选择一个选项?我不想使用对话片段,因为我认为它太碍事了。因此,如果他们在弹出菜单外单击,菜单仍应保持在那里,直到他们选择一个选项 public void showPopup(View view){ autonButton = (ToggleButton)view; pw = new PopupWindow(getApplicationContext()); pw.setTouchable(true); pw.

在Android中,有没有一种方法要求用户从弹出菜单中选择一个选项?我不想使用对话片段,因为我认为它太碍事了。因此,如果他们在弹出菜单外单击,菜单仍应保持在那里,直到他们选择一个选项

public void showPopup(View view){
    autonButton = (ToggleButton)view;

    pw = new PopupWindow(getApplicationContext());
    pw.setTouchable(true);
    pw.setFocusable(true);
    pw.setOutsideTouchable(true);
    pw.setTouchInterceptor(new OnTouchListener(){
        public boolean onTouch(View v, MotionEvent event){
            if(event.getAction() == MotionEvent.ACTION_OUTSIDE)
            {
                //pw.dismiss();
                Log.d("popup window", "popup outside");
                return false;
            }
            else if(event.getAction() == MotionEvent.ACTION_DOWN)
                Log.d("popup window", "popup down");



            return true;//if I put true here, the entire screen freezes, and i can't get any input
        }

    });
    pw.setWidth(WindowManager.LayoutParams.WRAP_CONTENT);
    pw.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);
    pw.setOutsideTouchable(false);
    pw.setContentView(autonPopup);
    pw.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
    pw.showAsDropDown(view, 0, 0);

    View popupView = pw.getContentView();

    optionR = (Button) popupView.findViewById(R.id.auton_select1);

    optionR.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {

            autonButton.setChecked(true);
            autonButton.setText("Red");
        }

    });

    optionB = (Button) autonPopup.findViewById(R.id.auton_select2);
    optionB.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v){
            autonButton.setChecked(true);
            autonButton.setText(" Blue");               
        }
    });

}

如果用户意外单击打开弹出菜单怎么办?迫使他们做出选择是很糟糕的,伊姆霍。请允许他们关闭弹出菜单,而不改变以前的状态。@commonware这是有意义的。谢谢你只是出于好奇,如果我真的想这么做,尽管UI设计很糟糕,我该怎么做?@AdnanMulla最好使用一个对话框片段,因为他们必须为此选择一个选项