0

PopupView に LinearLayout があり、この LinearLayout にボタンがあります。このボタンのイベント リスナーは正しく動作しますが、押す (ハイライトする) アニメーションが開始されません。私は何を間違えましたか?ゲルプしてください!

        public class PopupView extends View 
{
    private PopupWindow popUp;
    private Button buttonOk;
    private OnClickListener onClick;
    private LayoutParams params;
    private int popUpWidth = 0;
    private int popUpHeight = 0;
    private int popUpX, popUpY;

    public PopupView(Context context, View parent)
    {
        super(context);
        popUp = new PopupWindow(context);
        popUpLayout = new LinearLayout(context);
        buttonOk = new Button(context);
        buttonOk.setText("OK");
        buttonOk.setId(1);

        params = new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        popUpLayout.setOrientation(LinearLayout.VERTICAL);
        popUp.setContentView(popUpLayout);

        onClick = new OnClickListener()
        {
            public void onClick (View v)
            {
                switch (v.getId())
                {
                case 1:
                    System.out.println("OK pressed!");
                    break;

                case 2:

                    break;
                }
            }
        };

       buttonOk.setOnClickListener(onClick);

        popUpLayout.removeAllViews();
        popUpLayout.addView(buttonOk, params);


        popUpWidth = 200;
        popUpHeight = 400;

        popUpX = 300;
        popUpY = 300;

        popUp.showAtLocation(parent, Gravity.NO_GRAVITY, popUpX, popUpY);
        popUp.update(popUpX, popUpY, popUpWidth, popUpHeight);
    }
}
4

1 に答える 1

0

デフォルトでは、PopupView はフォーカス可能ではありません。メソッド popup.setFocusable(true) を呼び出す必要があります。全てに感謝!

于 2012-12-08T22:54:22.647 に答える