마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

메인 액티비티에서 back 버튼 누르면 종료 확인 다이얼로그 띄우기

0 추천

이거 예제 소스를 받아서 프로젝트에 집어 넣으려는데 안되네요. 어디쯤 넣어야 하나요?

manifest를 만져줘야하나요?

 

public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub  
    AlertDialog.Builder ab= new AlertDialog.Builder(this) ;
    String alertTitle = "종료";
   
    if(keyCode==KeyEvent.KEYCODE_BACK){
   
    ab.setMessage("프로그램을 완전히 종료합니다.\n종료 하시겠습니까?");
    ab.setTitle(alertTitle);
   
    ab.setPositiveButton("Yes",new DialogInterface.OnClickListener()
    {
 
 
    // ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
    // am.restartPackage(getPackageName());
}
   
   
    })
    .setNegativeButton("No",null)
    .show();
   
  
   
    finish();
   
    }
 
 
 
여기서 이 onKeyDown 메서드는 파일의 어느 쪽에 삽입하면 될까요?
 
 
익명사용자 님이 2013년 10월 30일 질문
2013년 10월 30일 수정

1개의 답변

+1 추천
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
여기에 넣으시면 됩니다.
//super.onBackPressed();
}
 
웅바라지 (4,780 포인트) 님이 2013년 10월 30일 답변
정말 죄송한데;
 public class AndroidActivity extends TabActivity{
   public void onCreate(Bundle savedInstanceState){

}
      <-- 이 위치에 public void onBackPressed(){}를 만들고 그 안에 다시 메서드를 삽입하는건가요?
}
넵 맞아여 !!
Activity 를 만들때 extends Activity 를 하잖아여~
onBackPressed 는 Activity 에서 제공하는 메소드 이므로 탭 액티비티에서는 사용이 안됩니다.

아래의 주소 참조해보세여~
http://fromleaf.tistory.com/153

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK :
            AlertDialog.Builder alt_bld = new AlertDialog.Builder(message_activity.this);
            alt_bld.setMessage("종료?").setCancelable(false).setPositiveButton("예",
                new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id)
                {
                    dialog.cancel();
                    finish();
                }
                }).setNegativeButton("아니오",
                new DialogInterface.OnClickListener()
                {
                public void onClick(DialogInterface dialog, int id)
                {
                    // Action for 'NO' Button
                    dialog.cancel();
                }
                });
            AlertDialog alert = alt_bld.create();
            alert.show();
            
               
            break;

        }
        return super.onKeyDown(keyCode, event);
    }

위에 코드도 확인해보세여~
정말 감사합니다. `ㅠ 행복하세요!
...