2012-04-25 2 views
2

일부 응용 프로그램 (예 : Dolphin HD Browser)은 다음 기능을 구현합니다."다시 종료하려면 다시 누르십시오"기능을 구현하는 방법은 무엇입니까?

"뒤로"를 누르면 백 스택으로 돌아갑니다. 초기보기/활동/단편이 표시되고 "뒤로"를 누르면 Toast이 나타나 "다시 끝내려면 뒤로를 누르십시오"또는 비슷한 것을 말합니다.

어떻게이 기능을 구현할 수 있습니까?

+0

봐는 그 명확하게 정의. – JoxTraex

+0

@ JoxTraex : 감사합니다. 개발자 사이트에 대해 알고 있으며 백 스택에 영향을 미치는 방법도 알고 있습니다. 나는 이것이 이것이 내장 된 기능이라고 생각했다. –

+0

@ThorstenDittmar 귀하의 질문이 (내장 기능에 관한) 그런 뜻이 아니 었습니다. 당신은 "어떻게 구현할 것인가?"라고 물었습니다. –

답변

2

캐치과 같이 백 버튼 이벤트 :

public void onBackPressed() 
{ 
    //Add your logic here 
    return; 
} 

지금 그래서 당신의 응용 프로그램이 발사 처음 닫지하는 플래그를 만들 수 있습니다. 마지막으로 활동에 finish();으로 전화하여 활동을 마칩니다.

Toast.makeText(this, "Press Back again to quit", Toast.LENGHT_SHORT).show(); 

당신이 당신의 활동 클래스에서이 코드를 실행하고 있다는 제공 : 빠르게 보여주는 토스트를 들어

이를 사용합니다. 그렇지 않은 경우 this을 사용하는 대신 활동의 컨텍스트를 가져 오십시오. API 레벨

+0

감사합니다. 나는 토스트 (toast)를 보여줄 줄 안다. 나는이 기능이 내장 된 것인지 (예를 들어 매니페스트의 깃발을 통해 켜져 있는지) 궁금하다. –

+0

문제가 없습니다! 구글이 안드로이드에 이와 같은 것을 만들 것이라고는 생각하지 않는다. 비록 일부 애플 리케이션에는 유용한 기능이긴하지만, 애플리케이션/액티비티 *가 어떻게 작동해야하는지에 대한 기본 규칙이 깨져있다. – Pieter888

+1

웹 브라우저의 경우처럼 뒤로 버튼을 누르면 웹 사이트의 역사가 다시 돌아가는 것이 특히 유용하다고 생각합니다. –

2

1 오버라이드 (override)는 API 레벨 5 이상에 대한 활동의 ​​

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
    .... 

는 Pieter888는 말을 참조하십시오. 클래스의 상단에

7

:

int count = 0; 

클래스의 몸에서 : dev에 사이트에서

public void onBackPressed() 
{ 
    if(count == 1) 
    { 
     count=0; 
     finish(); 
    } 
    else 
    { 
     Toast.makeText(getApplicationContext(), "Press Back again to quit.", Toast.LENGTH_SHORT).show(); 
     count++; 
    } 

    return; 
} 
+0

'count ++ ='를'if (count == 1)'문장의'else' 절 안에 넣으려고한다고 생각합니다. – Pieter888

+0

외부에 넣지 않아도된다. else 안에 count ++을 넣을 필요가 없다. –

+2

그러나'count'의 기본값은'0'이다. 사용자가 back 버튼을 누를 때'count ++;'를 먼저 실행하여 값이'1'이되면'count'의 값이 '1'과 같은지를 체크 할 것입니다. 이것은 항상 참이며 액티비티는 'finish()'. 아니면 여기서 뭔가를 완전히 놓치고 있습니까? – Pieter888

관련 문제