사용자 정의 팝업창 띄우기

by 조쉬 posted Jul 16, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

간단한 팝업 다이얼로그 띄우는 건 안드로이드에서 제공하는 AlertDialog을 이용하면 쉽게 구현할 수 있습니다.
하지만, 이 팝업 다이얼로그를 사용자 마음대로 바꾸고 싶을 때는
LayoutInflater 을 이용해서 사용자가 직접 만든 View를 생성해서 AlertDialog에 연결해서 보여줄 수 있습니다.


그 간단한 예는 다음과 같습니다.

01.private AlertDialog m_adlgConnectionInfo = null;
02. 
03.private void ShowConnectionInfoPopup()
04.{
05.    if (m_adlgConnectionInfo != null)
06.    {
07.        m_adlgConnectionInfo.dismiss();
08.    }
09.     
10.    LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
11.    View view = inflater.inflate(R.layout.comp_connected_device, null);
12.    ImageView ivServer = (ImageView)view.findViewById(R.id.iv_con_server);
13.    TextView tvServer = (TextView)view.findViewById(R.id.tv_con_server);
14.    ImageView ivRender = (ImageView)view.findViewById(R.id.iv_con_render);
15.    TextView tvRender = (TextView)view.findViewById(R.id.tv_con_render);
16.     
17.    DMSContentItem dmsContentsItem = m_ImageGallery.GetDMCContentItem();
18.    ivServer.setImageBitmap(AllShareMainData.getDeviceIcon(dmsContentsItem));
19.    tvServer.setText(dmsContentsItem.getDeviceItem().getFriendlyName());
20.    ivRender.setImageResource(R.drawable.dms_micro_hhp);
21.    tvRender.setText("My Device");
22.     
23.    m_adlgConnectionInfo = new AlertDialog.Builder(this)
24.        .setView(view)
25.        .setTitle("Connected devices")
26.        .setPositiveButton("OK", new DialogInterface.OnClickListener()
27.        {
28.            @Override
29.            public void onClick(DialogInterface dialog, int which)
30.            {
31.                dialog.dismiss();
32.            }
33.        })
34.        .create();
35.     
36.    m_adlgConnectionInfo.show();
37.}

맨 윗줄에 있는 m_adlgConnectionInfo이 null 이 아닌 경우 dismiss()를 호출하는 이유는
팝업 버튼을 연속으로 두 번 눌렀을 때 팝업창이 2개 뜨는 것을 방지하기 위한 코드입니다.