2012-06-10 3 views
0

저는 첫 번째 안드로이드 응용 프로그램을 만들고 있고, 뒤로 버튼을 누르면 이전 활동으로 돌아가는 대신 응용 프로그램이 종료됩니다. 아무도 내가 이것을 고칠 수있는 방법을 알고 있습니까 ??안드로이드 뒤로 버튼이 작동하지 않습니다.

감사

는 "Acties"페이지

package com.WNF; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageButton; 

public class Hoofdscherm extends Activity { 
// aanroepen van een bundle, kan je elke naam geven die je maar wilt, 
//zolang de bundle als de onCreate maar dezelfde naam hebben 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     // de setContentView is niets meer dan de gegevens van de 
//View ophalen uit de R.layout.naamvandeXML 
     // Onthoud goed dat je dezelfde XMLs voor meerdere pagina's 
//kan gebruiken. 
     setContentView(R.layout.hoofdscherm); 

     Button b = (Button) findViewById(R.id.button1); 
     ImageButton i = (ImageButton) findViewById(R.id.imageButton1); 

     b.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
       Intent in = new Intent(Hoofdscherm.this,Acties.class); 
       startActivity(in); 
       finish(); //deze activity wordt gestopt 
      } 
     }); 

     i.setOnClickListener(new OnClickListener(){ 
      public void onClick(View g){ 
       Intent ib = new Intent(Hoofdscherm.this,Acties.class); 
       startActivity(ib); 
       finish(); 
      } 
     }); 


    } 
} 

에 갈 수 그리고 이것은 "Acties"페이지

package com.WNF; 


import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 

public class Acties extends Activity{ 
// aanroepen van een bundle, kan je elke naam geven die je maar wilt, 
//zolang de bundle als de onCreate maar dezelfde naam hebben 
@Override 
public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     // de setContentView is niets meer dan de gegevens van de 
//View ophalen uit de R.layout.naamvandeXML 
     // Onthoud goed dat je dezelfde XMLs voor meerdere pagina's 
//kan gebruiken. 
     setContentView(R.layout.acties1); 

     getIntent(); 
    } 
} 
+0

일부 코드를 게시하기 전까지는 문제를 알리기가 어렵습니다. –

+0

코드 게시! – WickeD

+0

코드 게시 .......... –

답변

1

귀하의 Hoofdscherm 활동에서 귀하의 Acties 활동으로 전화하십시오. 그런 다음 Acties에서 뒤로를 누르면 응용 프로그램이 닫힙니다. 권리? 다시 누르면, 그것은 Hoofdscherm에 가야 Acties에서 무슨 일이 일어나고 무엇

은 이상적이다, 그러나 당신이 당신의 Hoofdscherm 활동에 finish();를 호출하기 때문에, 그것은 더 이상 존재하지. 따라서 애플리케이션이 종료됩니다. 당신이 Acties에서 Hoofdscherm로 돌아가려면

, 당신의 Hoofdscherm 활동에 finish() 호출을 제거합니다.

편집 :

Here's a bit more에 대한 finish(). 기억하십시오 - 활동을 닫으려는 경우에만 finish()으로 전화하십시오. 다시 돌아가려면 finish()으로 전화하지 마십시오.

+0

감사합니다 :) 지금 작동합니다 –

+1

항상 문제와 함께 코드를 게시하는 것을 잊지 마십시오. 그 방법에 쉽게 대답 할 수 있으며, 당신은 또한 downvoted 얻을하지 않습니다. :-) –

0

여기에서이, 내 "Hoofdscherm"페이지입니다 액티비티에서 onKeyDown 메서드를 재정 의하여 단추의 동작을 재정의하고 간단한 if 문을 사용하여 누른 키가 뒤로 키인지 확인합니다

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) { 
     // your code here 
     return true; 
    else return false 
    return super.onKeyDown(keyCode, event); 
} 

및 명세서 안쪽에 다른 활동이라고 말하는 코드를 작성하십시오.

편집 내가 첫 번째 활동을 죽이고, 중) (마무리를 제거하거나에서 의도을 통해 1 차 활동을 소환 것이다, 당신은 당신의 두번째 활동을 호출 한 후 마무리()를 호출 한, 당신은 당신의 코드를 추가 참조 두 번째 활동.

0

는 여기에 귀하의 솔루션

finish() 방법을 제거합니다.

b.setOnClickListener(new OnClickListener(){ 

      public void onClick(View v) { 

       Intent in = new Intent(Hoofdscherm.this,Acties.class); 

       startActivity(in); 

      finish(); // Remove this..and it will work as you want it to 
     } 
    }); 

finish() method avoids storing of the activity on the Back Stack 
관련 문제