J'ai une activité avec une vue de liste. Lorsque l'utilisateur clique sur l'élément, l'élément "visualiseur" s'ouvre:
List1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
Intent nextScreen = new Intent(context,ServicesViewActivity.class);
String[] Service = (String[])List1.getItemAtPosition(arg2);
//Sending data to another Activity
nextScreen.putExtra("data", datainfo);
startActivityForResult(nextScreen,0);
overridePendingTransition(R.anim.right_enter, R.anim.left_exit);
}
});
Cela fonctionne bien, mais dans la barre d'action, la flèche de retour à côté de l'icône de l'application ne s'active pas. Est-ce que je manque quelque chose?
java
android
android-3.0-honeycomb
Joaolvcm
la source
la source
getActionBar().setDisplayHomeAsUpEnabled(true);
dans onCreate etswitch (item.getItemId()) {case android.R.id.home: onBackPressed();break;}
dansonOptionsItemSelected
? les deux dans ServicesViewActivityRéponses:
Selvin a déjà publié la bonne réponse. Ici, la solution en joli code:
La fonction
NavUtils.navigateUpFromSameTask(this)
nécessite que vous définissiez l'activité parente dans le fichier AndroidManifest.xmlVoir ici pour plus de lecture.
la source
getActionBar().setDisplayHomeAsUpEnabled(true);
vous utilisez des bibliothèques de support.Assurez-vous que votre bouton d'accueil ActionBar est activé dans l'activité:
Android, API 5+:
ActionBarSherlock et App-Compat, API 7+:
Android, API 11+:
Exemple
MainActivity
qui s'étendActionBarActivity
:De cette façon, toutes les activités que vous souhaitez peuvent avoir la contre-pression.
Android, API 16+:
http://developer.android.com/training/implementing-navigation/ancestral.html
AndroidManifest.xml
:Exemple
MainActivity
qui s'étendActionBarActivity
:la source
Pour activer le bouton de retour ActionBar, vous avez évidemment besoin d'une ActionBar dans votre activité. Ceci est défini par le thème que vous utilisez. Vous pouvez définir le thème de votre activité dans le
AndroidManfiest.xml
. Si vous utilisez par exemple le@android:style/Theme.NoTitleBar
thème, vous n'avez pas d'ActionBar. Dans ce cas, l'appel àgetActionBar()
renverra null. Assurez-vous donc d'avoir d'abord une ActionBar.L'étape suivante consiste à définir l'
android:parentActivityName
activité sur laquelle vous souhaitez naviguer si vous appuyez sur le bouton Retour. Cela devrait également être fait dans leAndroidManifest.xml
.Vous pouvez maintenant activer le bouton retour dans la
onCreate
méthode de votre activité "enfant".Vous devez maintenant implémenter la logique du bouton de retour. Vous remplacez simplement la
onOptionsItemSelected
méthode dans votre activité "enfant" et vérifiez l'identifiant du bouton de retour qui estandroid.R.id.home
.Maintenant , vous pouvez tirer la méthode
NavUtils.navigateUpFromSameTask(this);
MAIS si vous n'avez pas spécifié leandroid:parentActivityName
en vousAndroidManifest.xml
cela va planter votre application.Parfois, c'est ce que vous voulez parce que cela vous rappelle que vous avez oublié «quelque chose». Donc, si vous voulez éviter cela, vous pouvez vérifier si votre activité a un parent utilisant la
getParentActivityIntent()
méthode. Si cela renvoie null, vous n'avez pas spécifié le parent.Dans ce cas, vous pouvez déclencher la
onBackPressed()
méthode qui fait essentiellement la même chose que si l'utilisateur appuyait sur le bouton de retour de l'appareil. Une bonne implémentation qui ne plante jamais votre application serait:Veuillez noter que l'animation que l'utilisateur voit est différente entre
NavUtils.navigateUpFromSameTask(this);
etonBackPressed()
.C'est à vous de décider quelle route vous prenez, mais j'ai trouvé la solution utile, surtout si vous utilisez une classe de base pour toutes vos activités.
la source
Fichier AndroidManifest:
ajouter dans DetailsActivity:
c'est du travail :]
la source
Annotations Android:
Source: https://github.com/excilys/androidannotations
la source
Je pense que
onSupportNavigateUp()
c'est le moyen le plus simple et le meilleur de le fairevérifiez le code dans ce lien Cliquez ici pour le code complet
la source
https://stackoverflow.com/a/46903870/4489222
Pour y parvenir, il y a simplement deux étapes,
Étape 1: Accédez à AndroidManifest.xml et ajoutez le paramètre dans la balise - android: parentActivityName = ". Home.HomeActivity"
exemple :
Étape 2: dans ActivityDetail, ajoutez votre action pour la page / activité précédente
exemple :
la source
Dans la méthode OnCreate, ajoutez ceci:
Ajoutez ensuite cette méthode:
la source
dans la
onCreated
méthode pour les nouvelles apis.la source
Si vous utilisez la barre d'outils, j'étais confronté au même problème. J'ai résolu en suivant ces deux étapes
la source
Les étapes suivantes suffisent largement au bouton de retour:
Étape 1: ce code doit être dans Manifest.xml
Étape 2: vous ne donnerez pas
dans votre activité parentale lors du démarrage de l'activité enfant.
Étape 3: Si vous devez revenir à l'activité des parents depuis l'activité de l'enfant, donnez simplement ce code pour l'activité de l'enfant.
la source
Sur la base de la réponse de Jared, j'ai dû activer et implémenter le comportement du bouton de retour de la barre d'action dans plusieurs activités et j'ai créé cette classe d'assistance pour réduire la duplication de code.
Utilisation dans une activité:
la source