2010-09-05 3 views
0

Je suis nouveau à la programmation Android et j'essaie de comprendre comment revenir à un écran/activité précédente après l'ouverture d'un autre écran en utilisant startActivity. De toutes les recherches que j'ai faites, l'utilisation de la méthode finish() devrait faire apparaître l'écran précédent juste avant celui en cours; Cependant, dans mon programme de test (dispose de quatre écrans avec un bouton "précédent" &), lorsque vous appuyez sur le bouton de retour, il revient au premier écran au lieu d'aller à l'écran précédent.Retour aux écrans précédents

Toute aide avec ceci serait grandement appréciée. Mon code est ci-dessous:

public class Screen1 extends Activity implements OnClickListener { 


    private Button next; 
    private Button quit; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen1); 

    next = (Button) findViewById(R.id.next); 
     quit = (Button) findViewById(R.id.quit); 

     next.setOnClickListener(this); 
     quit.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

     switch(view.getId()) { 

     case R.id.next: { 
      startActivity(new Intent(this, Screen2.class)); 
     } 
     case R.id.quit: { 

      finish(); 
     } 

     } 

    } 

} 




public class Screen2 extends Activity implements OnClickListener { 


    private Button next; 
    private Button back; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen2); 

    next = (Button) findViewById(R.id.next); 
     back = (Button) findViewById(R.id.back); 

     next.setOnClickListener(this); 
     back.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

     switch(view.getId()) { 

     case R.id.next: { 
      startActivity(new Intent(this, Screen3.class)); 
     } 
     case R.id.back: { 

      finish(); 
     } 

     } 

    } 

} 





public class Screen3 extends Activity implements OnClickListener { 


    private Button next; 
    private Button back; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen3); 

    next = (Button) findViewById(R.id.next); 
     back = (Button) findViewById(R.id.back); 

     next.setOnClickListener(this); 
     back.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

     switch(view.getId()) { 

     case R.id.next: { 
      startActivity(new Intent(this, Screen4.class)); 
     } 
     case R.id.back: { 

      finish(); 
     } 

     } 

    } 

} 




public class Screen4 extends Activity implements OnClickListener { 



    private Button back; 



    public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screen4); 

     back = (Button) findViewById(R.id.back); 

     back.setOnClickListener(this); 
    } 


    public void onClick(View view) { 

      finish(); 
     } 


    } 

} 
+0

Le bouton 'retour' sur les appareils Android font ce genre de comportement pour vous par défaut. Y a-t-il une raison pour laquelle vous avez besoin d'un bouton de retour explicite dans votre application? Les chances sont que vous n'en avez pas besoin. – smith324

+0

Non, je n'en ai vraiment pas besoin, je pensais juste qu'il serait bien de l'avoir là en plus du bouton de retour sur l'appareil. Cependant, le même comportement se produit avec le bouton de retour sur le périphérique. Y a-t-il une possibilité que les activités ne soient pas sauvegardées sur la pile? J'utilise Eclipse Helios v. 3.6. – steevo

Répondre

Questions connexes