Life Life Life
Dialog 및 ProgressDialog 하드웨어 Key 막기 본문
안드로이드에서 종종 Dialog, ProgressDialog에 대해 하드웨어 키을 못하게 막는 경우가 발생한다.
1. Back Key 막기
AlertDialog.Builder에서 setCancelable 설정을 true 처리하면 된다.
Ex)
AlertDialog.Builder alertDlg = new AlertDialog.Builder(context);
alertDlg.setCancelable(true);
alertDlg.setTitle("안내");
alertDlg.setMessage("'종료하시겠습니까?");
alertDlg.setPositiveButton("종료", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
public void onClick(DialogInterface dialog, int which)
{
finish();
dialog.dismiss();
dialog.dismiss();
}
}).setNegativeButton("취소", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
}
}).show();
2. Search Key 막기
다이얼로그에서 setCancelable으로 Back Key을 막아도 검색키로 취소하는 경우가 생길 수 있다.
이럴경우에는 다이알로그에서 setOnKeyListener을 오버라이드해서 처리해야 막을 수 있다.
Ex) 1번 Back Key막는 소스에서 밑에 소스을 추가하면 막을 수 있다.
.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
if(keyCode == KeyEvent.KEYCODE_SEARCH && event.getRepeatCount() == 0) {
return true;
}
return false;
}
})
출처 : http://stackoverflow.com/questions/3373342/progressdialog-disappears-when-search-key-on-the-phone-is-pressed
'개발 > 안드로이드' 카테고리의 다른 글
TextView에 폰트 적용하기 (0) | 2014.04.04 |
---|---|
이미지파일 회전 정보 조회 및 회전 (0) | 2014.04.02 |
안드로이드 최상위 Toast 만들기 (0) | 2014.04.02 |
GPS활성하게끔 설정화면 이동 (0) | 2014.04.02 |
안드로이드에서 화면 회전시 나타나는 문제- Android Screen Rotation Issue (0) | 2010.06.16 |