2016-12-03 3 views
0

J'ai donc l'intention de démarrer lorsque l'un des deux boutons de retour est enfoncé. Soit ce bouton de retour "getSupportActionBar(). SetDisplayHomeAsUpEnabled (true);" ou celui qui est sur tous les téléphones Android qui est intégré à l'appareil. J'ai cherché autour et n'ai pas pu trouver une solution.Comment démarrer Intention lorsque la barre d'action ou le bouton de retour intégré est enfoncé

Voici mon code où vous pouvez voir dans l'instruction if Je veux que le code "si le bouton de retour est enfoncé" soit. J'apprécie toute contribution!

CheckBox routeCheckBox; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_route_details); 

    //back button for route details view 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    //sets actionbar title 
    routeName = getIntent().getExtras().getString("routeName"); 
    getSupportActionBar().setTitle(routeName); 


    ///////checkbox/////// 
    routeCheckBox = (CheckBox) findViewById(R.id.routeCheckBox); 

    routeCheckBox.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) 
     { 
      if (routeCheckBox.isChecked()) 
      { 
       Intent check = new  Intent(RouteDetails.this,MainActivity.class); 
       check.putExtra("checkImageResource", R.drawable.checkmark); 

    /////////////////// ////////////  
       if (actionbar back button or the built in backbutton on all android devices is pressed) 
       { 
        startActivity(check); 
       } 
    //////////////////////////////// 
      } 
     } 
    }); 

Nouveau code Edit:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      onBackPressed(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    // your code here 
    routeCheckBox.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) 
     { 
      if (routeCheckBox.isChecked()) 
      { 
       Intent check = new Intent(RouteDetails.this,MainActivity.class); 
       check.putExtra("checkImageResource", R.drawable.checkmark); 
       startActivity(check); 
      } 
     } 
    }); 
} 

Répondre

0
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      onBackPressed(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    // your code here 
} 
+0

Hey merci pour la réponse. J'ai mis ceci dans mon code mais maintenant l'instruction If ne fonctionne pas. Il ne transmet pas le checkImageResource à mon activité principale. Pourquoi cela serait-il? Merci pour toute aide! – zsh5032

+0

vous devez supprimer le "si le bouton de retour est enfoncé" déclaration, qui sera appelée par le système automatiquement (onBackPressed) .. –

+0

J'ai effectivement supprimé cela. J'ai édité mon post ci-dessus pour montrer comment j'ai ajouté votre code – zsh5032