閱讀1011 返回首頁    go 阿裏雲 go 技術社區[雲棲]


android PopupWindow例子(代碼片段)

指定VIEW的onClick事件:


    private PopupWindow popup_message;// 留言對話框


    /**
     * 全局Click事件
     */
    @Override
    public void onClick(View v) {
        if (v == btnMessage) {// 留言
            getPopupWindowByMessage();
            popup_message.showAtLocation(findViewById(R.id.layout_main), Gravity.CENTER | Gravity.CENTER, 0, 0);
        }
    }


    /**
     * 獲取PopupWindow實例
     *
     * @author SHANHY
     */
    private void getPopupWindowByMessage() {
        if (null != popup_message) {
            popup_message.dismiss();
            return;
        } else {
            initPopupWindowByMessage();
        }
    }


    /**
     * 創建PopupWindow(留言)
     *
     * @author SHANHY
     */
    protected void initPopupWindowByMessage() {

        View popupWindow_view = getLayoutInflater().inflate(R.layout.popupwindow_message, null, false); // 獲取自定義布局文件popup.xml的視圖
        popup_message = new PopupWindow(popupWindow_view, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT, true);// 創建PopupWindow實例
        Button btnSure = (Button) popupWindow_view.findViewById(R.id.btn_sure);// dialog.xml視圖裏麵的控件
        Button btnCancel = (Button) popupWindow_view.findViewById(R.id.btn_cancel);// dialog.xml視圖裏麵的控件

        // popup.setBackgroundDrawable(getResources().getDrawable(R.drawable.panel_bg));

        popup_message.setBackgroundDrawable(new BitmapDrawable()); // 響應返回鍵必須的語句。請放心,設置 BackgroundDrawable 並不會改變你在配置文件中設置的背景顏色或圖像。
        popup_message.setFocusable(true);// menu菜單獲得焦點 如果沒有獲得焦點menu菜單中的控件事件無法響應
        popup_message.update();

        // 返回鍵關閉
        popupWindow_view.findViewById(R.id.layout_main).setOnKeyListener(new View.OnKeyListener() {
            
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                 if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK)
                     if (popup_message != null && popup_message.isShowing())
                         popup_message.dismiss();
                return false;
            }
        });

        btnSure.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {// 留言

            }
        });
        btnCancel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (popup_message != null && popup_message.isShowing())
                    popup_message.dismiss();
            }
        });
    }


最後更新:2017-04-03 14:54:04

  上一篇:go Spring tool suite編譯不通過:Access restriction: The type XXX is not accessible
  下一篇:go WebService報錯javax.xml.ws.soap.SOAPFaultException: javax.xml.ws.WebFault.messageName()