64 votes

Suppression des extras de l'intention transmise

J'ai un écran de recherche qui peut être lancé à partir de cliquer sur un champ "nom" de l'autre de l'écran.

Si l'utilisateur suit le flux de travail, j'ai ajouter un supplément à l'Intention des Figurants appelé "recherche". Ce supplément utilise le texte de peupler le champ "nom", car sa valeur. Lorsque l'écran de recherche est créé, qui est utilisé comme un paramètre de recherche et une recherche est automatiquement lancée pour l'utilisateur.

Cependant, depuis Android détruit et recrée Activitys lorsque l'écran tourne, la rotation du téléphone provoque une auto-recherche de nouveau. De ce fait, j'aimerais supprimer la "recherche" de l'Activité de l'Intention, lors de la première recherche est exécutée.

J'ai essayé de faire de cette façon:

    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        if (extras.containsKey("search")) {
            mFilter.setText(extras.getString("search"));
            launchSearchThread(true);
            extras.remove("search");
        }
    }

Cependant, ce n'est pas de travail. Si je tourne l'écran à nouveau, la "recherche" extra " existe encore dans l'Activité de l'Intention des Figurants.

Des idées?

150voto

Andrew Points 4526

Je le fais fonctionner.

Il semble que getExtras () crée une copie des extras de l'intention.

Si j'utilise la ligne suivante, cela fonctionne bien:

 getIntent().removeExtra("search");
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X