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

Android Discussion :

Récupération extra depuis une Activity


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut Récupération extra depuis une Activity
    bonjour,

    pour mon appwidget j'ai une activity de configuration que j'utilise pour modifier des paramètres une fois l'appwidget crée.

    le problème est que je ne récupère pas les paramètres que j'envoi, j'en récupère d'autre !?

    voici le code dans mon AppWidgetProvider :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	    	Intent intentchangement = new Intent(context, WidgetDialog.class);
    	    	intentchangement.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
    	    	intentchangement.putExtra(WidgetProvider.TASK_BACK, true);
    	    	intentchangement.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
     
    	    	PendingIntent pendingchangement = PendingIntent.getActivity(context, 0, intentchangement, 0);
     
    	    	RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
     
    	         views.setOnClickPendingIntent(R.id.btn_voir, pendingchangement);

    et voici comment je récupère les infos dans mon activity WidgetDialog :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.listepage);
     
    		intent = getIntent();
    		extras = intent.getExtras();
     
    		if (extras != null)
    		{
    			appwidgetid = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
    		}
     
    		if(extras.getBoolean(WidgetProvider.TASK_BACK, false))
    		{
    			moveTaskToBack(true);
    		}

    lorsque je vérifie avec le debugger ou même grâce a des toast, je n'ai pas les même infos.

    c'est peut être lié au fait qu'il s'agit de la même activity que pour la configuration ?
    ou alors je récupère mal les infos ?

    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Tu as plusieurs widgets ?

    Parce que si c'est le cas, ils utiliseront tous les même PendingIntent... Et comme il n'y a pas de "flag" (CREATE_NEW, etc...) le tout premier créé depuis le boot du téléphone.
    Bien relire la doc ci-dessus, en particulier la partie:
    Because of this behavior, it is important to know when two Intents are considered to be the same for purposes of retrieving a PendingIntent. A common mistake people make is to create multiple PendingIntent objects with Intents that only vary in their "extra" contents, expecting to get a different PendingIntent each time. This does not happen. The parts of the Intent that are used for matching are the same ones defined by Intent.filterEquals. If you use two Intent objects that are equivalent as per Intent.filterEquals, then you will get the same PendingIntent for both of them.

    Pour avoir des PendingIntent différent il faut une de ces conditions:
    * Modifier l'action.
    * Modifier l'url
    * Modifier le second paramètres de PendingIntent.getActivity(context, 0, intentchangement, 0); (ici 0 tout le temps).

    En général, ce que je fais, c'est passer le appWidgetId dans ce paramètre.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 216
    Par défaut
    bonjour,

    j'ai modifié mon PendingIntent ainsi :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    PendingIntent pendingchangement = PendingIntent.getActivity(context, appWidgetId, intentchangement, 0);

    et maintenant ça fonctionne parfaitement, j'ai un peu de mal a comprendre les PendingIntent...

    mais je pense que je ne referais plus les mêmes erreur, enfin... j’espère

    en tout cas, merci nicroman... encore.

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

Discussions similaires

  1. Récupération fichier depuis une interface avec authentification
    Par lacava dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 16/04/2015, 15h40
  2. récupération données depuis une page web
    Par sofiane_bfm007 dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 29/03/2011, 11h37
  3. [MySQL] récupération variable depuis une requête pour en déclencher une autre
    Par Baldric de Dol dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/05/2008, 20h35
  4. Réponses: 25
    Dernier message: 19/05/2006, 11h37
  5. [C#] Récupération d'une image depuis une table SQL Server
    Par borgfabr dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/04/2004, 13h20

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