Dans de nombreuses applications (Calendrier, Drive, Play Store), lorsque vous appuyez sur un bouton et entrez une nouvelle activité, l'icône dans la barre de titre se transforme en bouton de retour, mais pour l'application que je crée, cela ne le fait pas. Comment puis-je faire en sorte que cette icône vous ramène à l'écran précédent?
android
user-interface
themes
titlebar
A dessiné
la source
la source
Réponses:
Il existe deux étapes simples pour créer un bouton de retour dans la barre de titre:
Tout d'abord, rendez l'icône de l'application cliquable à l'aide du code suivant dans l'activité dont vous souhaitez insérer un bouton de retour dans la barre de titre:
Après avoir ajouté le code ci-dessus, vous verrez une flèche de retour apparaître à gauche de l'icône de l'application.
Deuxièmement, après avoir fait ce qui précède, vous devez toujours créer un code qui tirera parti de l'événement de clic. Pour ce faire, sachez que lorsque vous cliquez réellement sur l'icône de l'application, une
onOptionsItemSelected
méthode est appelée. Donc, pour revenir à l'activité précédente, ajoutez cette méthode à votre activité et mettez-y duIntent
code qui vous ramènera à l'activité précédente. Par exemple, disons que l'activité à laquelle vous essayez de revenir est appeléeMyActivity
. Pour y revenir, écrivez la méthode comme suit:C'est tout!
(Dans l'API des développeurs Android, il recommande de jouer avec le manifeste et d'ajouter des éléments tels que
android:parentActivityName
. Mais cela ne semble pas fonctionner pour moi. Ce qui précède est plus simple et plus fiable.)Et dans votre activité
la source
utiliser ce code
après cela, écrivez ce code dans la
onOptionsItemSelected
méthodela source
getActionBar()
me donne un nul; est-ce que tu sais pourquoi?J'ai enfin réussi à ajouter correctement le bouton de retour à la barre d'action / barre d'outils
la source
1.- Ajoutez l'activité à AndroidManifest.xml et assurez-vous de fournir les méta-données:
2.- Ajoutez le code suivant à la méthode onCreate de l'activité:
3.- Remplacez la méthode onOptionsItemSelected et utilisez la méthode statique NavUtils.navigateUpFromSameTask () pour naviguer dans la pile.
la source
Si votre activité prolonge l'activité
Si votre action étend AppCompatActivity
Plus rien à faire, voir l' action Ajouter
[FACULTATIF] Pour définir explicitement l'activité parent, modifiez votre Manifest.xml comme ceci:
Voir Spécifier l'activité parent
la source
Si votre activité s'étend,
AppCompatActivity
vous devez remplacer laonSupportNavigateUp()
méthode comme suit:Gérez votre logique dans votre
onBackPressed()
méthode et appelez simplement cette méthode pouronSupportNavigateUp()
que le bouton de retour du téléphone et la flèche de la barre d'outils fassent la même chose.la source
tout d'abord dans onCreate Function, ajoutez la ligne suivante
puis ajoutez la fonction suivante dans le code:
la source
Vous devez d'abord écrire ces codes
Puis ajoutez cette ligne dans le manifeste
la source
Si vous utilisez la nouvelle bibliothèque de support pour 5.1 dans Android Studio, vous pouvez à la place l'utiliser sur votre AppCompatActivity
à votre santé.
la source
Le moyen le plus simple et les meilleures pratiques comme l'explique google ici :
1.Ajoutez un parent pour votre enfantActivité dans le
AndroidManifest.xml
:2.Activez le bouton de retour dans votre childActivity:
A travaillé pour moi, j'espère que cela fonctionne pour vous aussi.
la source
Après un temps de qualité que j'ai trouvé, l'option de thème est le principal problème dans mon code Et voici la bonne façon d'afficher la barre d'outils pour moi
Dans le fichier AndroidManifest, vous devez d'abord changer le style de votre thème
puis à votre activité xml, vous devez appeler votre propre barre d'outils comme
Et puis cette barre d'outils devrait être appelée dans votre fichier Java par
Et pour la barre d'outils montrant que U doit vérifier la valeur null pour éviter NullPointerException
Pour l'activité à domicile, ajoutez ceci
OU pour votre activité souhaitée retour
la source
J'ai vu tellement de réponses complexes, c'est donc mon code. Travaillé ici. Vous pouvez y parvenir de deux manières.
1) Compatibilité Android Stardard
2) Utilisez une icône personnalisée
Si vous souhaitez utiliser du code dans les commentaires, il vous suffit d'ajouter ce fichier dans drawable, appelé ic_arrow_white_24dp.xml
Avec ce code.
J'espère que cela aidera certaines personnes ici!
la source
Version allégée sans utilisation
ActionBarActivity
qui a toujours les mêmes comportements ici:Utilisation: mettre
new ToolbarConfigurer(this, (Toolbar) findViewById(R.id.my_awesome_toolbar), true);
enonCreate
.la source
Vous devez ajouter le code mentionné ci-dessous dans le fichier manifeste. Recherchez l'activité à laquelle vous souhaitez ajouter la fonctionnalité de flèche de retour. Si vous trouvez celui-ci, bien ou créez l'activité
Ajoutez ensuite les trois lignes de code suivantes entre les deux.
Et n'oubliez pas d'ajouter ce morceau de code dans onCreate (); méthode de votre activité particulière dans laquelle vous avez besoin d'une flèche arrière.
C'est ainsi que j'ai résolu le problème. Merci.
la source
Les autres réponses ne mentionnent pas que vous pouvez également définir ceci dans le XML de votre
Toolbar
widget:app:navigationIcon="?attr/homeAsUpIndicator"
Par exemple:
la source
Tout ce que vous devez faire en 2020:
(sachant que vous voulez revenir à l'activité principale)
la source
Si vous utilisez une ActionBar, vous voudrez lire cette documentation http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)
Ensuite, vous devez remplacer la méthode onOptionsItemSelected (MenuItem) et rechercher l'événement android.R.id.home à venir. Ensuite, vous savez que l'utilisateur a cliqué sur ce bouton de retour dans la barre d'actions
la source
Cela peut également être fait sans code en spécifiant une activité parente dans le manifeste de l'application. Si vous voulez un bouton de retour dans l'activité B qui passera à l'activité A, ajoutez simplement l'activité A en tant que parent de l'activité B dans le manifeste.
la source
Pour kotlin:
la source
J'avais besoin de mélanger certaines réponses pour obtenir la bonne réponse pour moi car mon application propose 3 activités qui peuvent aller et venir à tout moment. Activité1> Activité2> Activité3. Lorsque je faisais quelque chose sur mon activité3, le bouton Précédent revenait correctement à Activity2. Cependant, à partir de Activity2, en utilisant
finish()
, il était de retour à Activity3 et non à Activity1. Et j'étends AppCompatActivity. Donc, ma solution était:sur AndroidManifest.xml:
et enfin, le bouton d'action de mon menu (barre d'actions):
L'utilisation a
NavUtils.navigateUpFromSameTask(this);
fonctionné pour moi, au lieu definish()
.la source
Juste partager quelque chose qui m'a aidé et qui peut être utile pour les autres. Bien que la plupart des réponses ici soient correctes, en utilisant le
getActionBar().setDisplayHomeAsUpEnabled(true);
, cela ne fonctionnait pas pour moi. Le problème que j'ai eu était que j'essayais de créer une deuxième activité manuellement, mais il y a plus de détails impliqués.Ce qui a vraiment résolu mon problème a été de suivre le tutoriel des développeurs Android ( https://developer.android.com/training/basics/firstapp/starting-activity ) pour créer une deuxième activité à l'aide des propres outils d'Android Studio:
la source
Vous pouvez également simplement insérer
onBackPressed()
votre écouteur onClick. Cela amène votre bouton à agir comme les boutons "sauvegarde / remontée" par défaut dans les applications Android!la source
la source
Cela fonctionne pour moi. Supposons qu'il y ait deux activités (Activityone, Activitytwo)
Inside Activitytwo utilise ce code
Sur Activityone
Cela devrait être inclus dans la deuxième activité dans le fichier manifeste
Et le résultat serait comme ça
la source
la source
Cela fonctionne pour moi getSupportActionBar (). SetDisplayHomeAsUpEnabled (false); entrez la description de l'image ici
la source