IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

Comment gérer une pile d'Activities ? (NFC, IntentFilter)


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 157
    Par défaut Comment gérer une pile d'Activities ? (NFC, IntentFilter)
    Bonjour,
    Il y a quelque chose que j'aimerai réaliser, mais je n'arrive pas à l’exprimer.



    Je suis actuellement en train de développer une application qui lit et écrit sur des tags NFC.

    J'aimerais que lorsque l'utilisateur a lancé l'application et qu'il scan un tag NfcV une Activity se lance, sans que l'utilisateur puisse demander avec quel logiciel gérer le tag.
    J'ai donc utilisé le ForegroundDispatch :
    http://developer.android.com/resourc...dDispatch.html

    En fait j'ai créé une classe qu'extends Activity et j'ai remis le onCreate(), onResume() et onPause().
    J'ai changé le Flag par Intent.FLAG_ACTIVITY_NEW_TASK, comme ça si je suis dans l'Activity lancé par les PendingIntent / IntentFilter tout ça et ben je relance l'Activity par dessus (même si c'est pas ce que j'aimerais faire au final).
    Et ensuite au lieu de faire extends mes classes vers Activity je les extends avec ma nouvelle classe.

    Ce que j'aimerais faire maintenant, c'est qu'en lisant l'id du tag j'arrive dans l'Activity Liste, avec lancé en dessous l'Activity Menu et encore en dessous l'Activity Sommaire.

    Parce que là j'ai créé une Activity pour le test et je ne sais pas comment m'y prendre pour qu'elle soit lié à l'application, parce que là si j'ai backPressed et ben je quitte l'application.

    J'ai pensé à des solutions, mais je ne sais pas exactement comment les implémenter, par exemple redéfinir, onBackPressed() pour qu'elle finish() l'Activity et en lance une autre.
    Mais imaginons que l'utilisateur soit déjà dans une Activity Liste ça risque de créer des Activities en parallèles.

    J'explique mal, mais en gros j'aimerais lancé une Activity avec d'autres Activities derrière elle.

    Ou alors je prend le problème dans l'ordre.
    Je fais une sorte d'inverse de onActivityResult(), en utilisant les getIntent().getExtras().
    Je lance la première Activity elle regarde l'extra si il y a une valeur elle lance la deuxième et ainsi de suite.

    Et sinon comment faire pour savoir comment l'Activity a été lancé ?
    J'aimerais savoir quand l'Activity à été lancé en dehors de l'application parce que dans le Manifest il y a ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <meta-data android:name="android.nfc.action.NDEF_DISCOVERED" android:resource="@xml/nfc_tech_filter" />
    <intent-filter>
          <action android:name="android.nfc.action.TAG_DISCOVERED" />
          <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    Donc voilà si vous avez des conseils à me donner, merci de m'en faire part.
    Bonne soirée.
    Au revoir.

  2. #2
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 157
    Par défaut
    J'ai essayé une solution, mais c'est pas encore top.
    Depuis Liste lors du onBackPressed() j'envoie l'ID qui va me permettre de créer le Menu je startActivity() et je finish(), et depuis le Menu lors du onBackPressed() je startActivity() du sommaire et je finish().

    Le problème c'est qu'il faudrait que je vérifie, si il ni a pas déjà un Menu ou un Sommaire lancé.

    Parce que si l'utilisateur va dans Sommaire -> Menu.
    Là il tag, il se retrouve donc dans une Liste.
    En backPressant :
    Liste -> Menu -> Sommaire -> Menu -> Sommaire -> Sommaire -> terminé

    Alors que j'aimerais :
    Liste -> Menu -> Sommaire -> terminé
    Quoi qu'il arrive.

    Edit, je vais regarder là dedans :
    http://developer.android.com/guide/t...ack-stack.html
    Peut être getCallingActivity () ou quelque chose comme ça.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Par défaut
    Imposer à l'utilisateur un mode de fonctionnement (avec tes différentes activités qui se lancent) c'est pas forcement très bien (du point de vue programmeur et utilisateur). Ne peux tu pas le laisser décider par lui même ?

  4. #4
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 157
    Par défaut
    Euh je vois pas très bien là...
    Ça ne peut fonctionner que d'une façon.

    En fait l'utilisateur va consulter une liste d'item qu'il possède, il peut en ajouter, en supprimer ou y associer un tag.

    Ces items sont rangé dans une liste, ces listes sont rangé dans des menus.

    Parce que là par exemple, en dehors de l'application l'utilisateur peut lire un tag, si il choisit mon application, il va avoir les infos sur l'item associé à se tag.
    Le problème c'est que si il recule, au lieu d'arriver dans une autre Activity il va fermer l'application.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Par défaut
    Pourquoi veux-tu qu'il recule ?

    C'est toi qui l'impose là !

    Une fois qu'il a scanné propose lui une action (qui peut correspondre à un
    lancement d'activité par exemple). Mais ne lui impose pas une démarche qui
    n'est pas naturelle.

    Tu imposes à l'utilisateur tes contraintes : ce n'est pas la meilleurs approche.

  6. #6
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 157
    Par défaut
    En fait c'est l'adaptation d'un logiciel PC sur Android.
    Et dans la version PC peu importe où l'utilisateur se trouve si il scan un tag, il va se trouver dans un onglet avec une liste d'item et l'item correspondant est mis en évidence.

    J'explique mal, mais je vous assure que c'est tout à fait logique.

    En fait c'est un logiciel de gestion de cave à vin.
    Le sommaire propose toutes les caves de l’utilisateur.
    Imaginons que l'utilisateur choisisse "Cave 3", là on à un choix entre tout les vins dispo dans cette cave par exemple : Alsace Grand Cru Frankstein.
    Si on clique dessus on voit la liste de toutes les bouteilles d'Alscace Grand Cru Frankstein de la Cave 3 de l'utilisateur.
    Et là toutes les bouteilles s'affichent et si on clique dessus, on est encore dans une autre activité avec les détails de la bouteille.
    On peut associer un TAG à cette bouteille.

    Quand on scan un tag on arrive dans les détails de la bouteille et ce serait vraiment classe que si l'utilisateur recule il se retrouve dans la liste des bouteilles du même type.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CF][PPC/VB.NET/Datagrid] Comment gérer une colonne CheckBox ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 28/08/2006, 17h08
  2. Réponses: 7
    Dernier message: 24/03/2006, 10h51
  3. [VB.NET] Comment gérer une DLL Delphi ?
    Par slimjoe dans le forum VB.NET
    Réponses: 2
    Dernier message: 09/01/2006, 00h10
  4. Site web : Comment gérer une version Officiel et Officieuse
    Par AlphaYoDa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/12/2005, 08h48
  5. Comment gérer une Progressbar pendant un CopyFrom ?
    Par greg778 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 25/07/2005, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo