간단한 팝업 다이얼로그 띄우는 건 안드로이드에서 제공하는 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개 뜨는 것을 방지하기 위한 코드입니다.