본문 바로가기
Android 기법/# Study

[Android/안드로이드]PopupWindow 쉽게 사용하기[GitHub]

by 퍼즐잎 2017. 2. 2.



간단하게 PopupWindow를 만들 수 있다.




Popup으로 사용할 xml 을 작성하고


inflate 를 사용하여 xml을 실제 View 객체로 만든다.





기타 설명은 코드 주석에 포함되어있다.








1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 private PopupWindow mPopupWindow ;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button popup = (Button) findViewById(R.id.show);
        popup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                View popupView = getLayoutInflater().inflate(R.layout.dialog_activity, null);
                mPopupWindow = new PopupWindow(popupView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
                //popupView 에서 (LinearLayout 을 사용) 레이아웃이 둘러싸고 있는 컨텐츠의 크기 만큼 팝업 크기를 지정

                mPopupWindow.setFocusable(true); 
                // 외부 영역 선택히 PopUp 종료

                mPopupWindow.showAtLocation(popupView, Gravity.CENTER, 00);
                
                Button cancel = (Button) popupView.findViewById(R.id.Cancel);
                cancel.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        mPopupWindow.dismiss();
                    }
                });
 
                Button ok = (Button) popupView.findViewById(R.id.Ok);
                ok.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "Ok", Toast.LENGTH_SHORT).show();
                    }
                });
            }
        });
    }

cs







댓글