총 게시물 931건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

안드로이드 back 버튼시 팝업을 띄워주고 종료 여부를 묻는 부분을 만들어보고 있습니다.

글쓴이 : dschoi 날짜 : 2012-02-21 (화) 00:14 조회 : 20380
글주소 : http://www.androidside.com/B49_best/1131
 
  오라클자바교육센터 구로본점
안드로이드전문교육, SDK실무개발, APP개발프로젝트, 실습폰지원, 재직자환급
www.oraclejava.co.kr
  임베디드 시스템 마이크로비젼
임베디드 개발보드, 개발용역, IAR 컴파일러 총판, 에뮬레이터.
www.mvtool.co.kr
  안드로이드 솔루션 크라이저
안드로이드기반 기업맞춤형 하드웨어 제조, 폭 넓은 커스터마이징, 광고시스템구축
solutech.krizer.com
신청하기


public class snjiMain extends TabActivity {
   
 TabHost tabHost;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         // 로딩화면을 보여줌
         startActivity(new Intent(this,Splash.class));  
       
         TabHost tabHost = getTabHost();
        
         // 탭호스트
         tabHost.addTab(tabHost.newTabSpec("tab1")
               .setContent(new Intent(this,tab1.class))
               .setIndicator("Home",getResources().getDrawable(R.drawable.home)));
 
         tabHost.addTab(tabHost.newTabSpec("tab2")
               .setContent(R.id.tab2)
               .setIndicator("Worship",getResources().getDrawable(R.drawable.icon)));
        
         tabHost.addTab(tabHost.newTabSpec("tab3")
         .setContent(new Intent(this,tab3.class))
         .setIndicator("Live",getResources().getDrawable(R.drawable.tv)));
        
         tabHost.addTab(tabHost.newTabSpec("tab4")
         .setContent(new Intent(this,tab4.class))
         .setIndicator("Bible",getResources().getDrawable(R.drawable.book)));
    }
 
 // back 버튼 클릭시 종료할 것인지를 묻는 팝업을 보여줌.
 @Override
 public boolean onKeyDown(int keyCode,KeyEvent event)
 {
   if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0)
   {
    // 팝업을 띄움
   
    AlertDialog dialog;
       dialog = new AlertDialog.Builder(this).setTitle("종료확인")
          // .setIcon(R.drawable.warning)
           .setMessage("종료하시겠습니까?")
        .setPositiveButton("예", new DialogInterface.OnClickListener() {   
           public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            //dialog.dismiss(); 
            finish();
           }
          })
           .setNegativeButton("아니요", new DialogInterface.OnClickListener() {
         
         public void onClick(DialogInterface dialog, int which) {
          // TODO Auto-generated method stub
          dialog.cancel();
         }
        })
        .show();    
    return true;
   }
   return super.onKeyDown(keyCode, event);
 }
}
 
파란색 부분이 구현한거거든요. 예, 아니오로 back 버튼을 누르면 다이얼로그 창이 하나 떠서 예를 선택하면
어플이 종료되고 아니요를 선택하면 그냥 팝업만 닫히게끔 하고 싶은데요.
막상 어플이 실행되고 메인 액티비티가 뜨고나서 back 버튼을 누르면 그냥 종료가 되버립니다.
back 버튼이 안먹는거 같은데.. 어느 부분이 잘못된건지.. 종료처리 부분 소스를 더 앞쪽에다가 구현해줘야하나요ㅠ
조언 부탁드립니다.



dschoi 님의 개발 Q&A FAQ 최신글 [더보기]


질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

미니어스 2012-02-21 (화) 01:41
//액티비티에 변수 선언
Boolean is_finish = false; //종료시
   
 // 뒤로가기 버튼 클릭시
@Override
    public void onBackPressed(){
//메인 종료되기전 한번 물어보고 종료
if(is_finish)
finish();
else {
Toast.makeText(getBaseContext(), "종료하시려면 이전버튼을 한번 더 누르세요.", 0).show();
is_finish = true; //종료한다.
}
    }
댓글주소 추천 0 반대 0
     
     
dschoi 2012-02-21 (화) 11:14
미니어스님 답변감사합니다. 근데 제가 원하는건 토스트를 띄우고  back 버튼 두번 눌러서 종료하게끔 하고
싶은게 아니라 팝업을 띄워서 예, 아니오로 선택을 할 수 있도록 해주고 싶습니다만...
댓글주소 추천 0 반대 0
고추삼겹살 2012-02-21 (화) 08:57
&& event.getRepeatCount() == 0 이건 무었을 뜻하는건가요..
&& event.getRepeatCount() == 0 이걸 삭제하고 하면 될거 같아요 
댓글주소 추천 0 반대 0
     
     
dschoi 2012-02-21 (화) 11:07
삭제해도 안됩니당.. 윽...
댓글주소 추천 0 반대 0
두근 2012-02-21 (화) 09:13
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode == KeyEvent.KEYCODE_BACK){
finish();
}
return true;
}

이거이지 않을까요?

저는 onKeyDown하면 키가 안먹혀서 Up으로 했더니 인식했습니다. 
댓글주소 추천 0 반대 0
     
     
dschoi 2012-02-21 (화) 11:08
다이얼로그를 띄워서 확인시켜주고 싶은데....
댓글주소 추천 0 반대 0
          
          
안사지킴이 2012-02-21 (화) 11:08
축하드립니다. ;)
dschoi님은 럭키라이팅에 당첨되어 1 포인트 지급되었습니다.
     
     
dschoi 2012-02-21 (화) 11:09
답변 감사드립니다.
하지만, onKeyUp을 이용해도 먹히질 않네요 ^^;
댓글주소 추천 0 반대 0
이바둥 2012-02-21 (화) 10:33
backkey면 onKeyDown보다는
onBackPressed() 메소드에서 처리해 주시는 것도 좋을 듯 합니다만.
댓글주소 추천 0 반대 0
     
     
dschoi 2012-02-21 (화) 11:08
어떻게 처리를 해줘야하는지를 설명 부탁드립니다..ㅜㅜ
댓글주소 추천 0 반대 0
          
          
안사지킴이 2012-02-21 (화) 11:08
죄송합니다. ;)
dschoi님은 안사지킴이의 심술에 의해 -5 포인트 차감되었습니다.
               
               
dschoi 2012-02-21 (화) 11:10
감사합니다
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기