Comment cacher le menu déroulant spinner

Je souhaite cacher le popup rapide de spinner sur le clic extérieur. Si la fenêtre contextuelle rapide est ouverte et que l'utilisateur appuie sur l'activité de la clé de démarrage, il sera donc minimisé, de sorte que lorsque l'utilisateur ouvrira une nouvelle fois l'application, la fenêtre contextuelle devrait disparaître.
Y'a-t-il une quelconque façon de réussir cela. Je vous remercie

Modifier: – Le popup rapide n'est pas personnalisé. Je ne peux donc pas les cacher dans les méthodes onPause ou onResume .

  • Un Java Runtime Environment (JRE) ou Java Development Kit (JDK) doit être disponible pour exécuter Eclipse
  • Filtrage de l'adaptateur personnalisé IndexOutOfBoundsException
  • Est-il possible de jeter une intention pour APPWIDGET_UPDATE par programme?
  • NullPointerException lorsque vous utilisez RelativeLayout comme Custom InfoWindow
  • Problème important android.support.v7.widget.CardView dans Eclipse
  • Affectation de 'wrap_content' ou '-2' à la dimension
  • Les types primitifs sont-ils collectés dans Android?
  • Android twitter4j télécharger l'image
  • Comment inclure des suggestions dans le clavier Android
  • Nouvelle version "Authentification avec Google Play Services", problèmes pour obtenir un jeton via GoogleAuthUtil.getToken
  • Le projet peut utiliser une version de Gradle qui ne contient pas la méthode 'compileSdkVersion ()'
  • Comment tweet depuis l'application Android?
  • 4 Solutions collect form web for “Comment cacher le menu déroulant spinner”

    Eh bien, c'est un peu compliqué que je ne le pensais.

    J'ajoute les détails étape par étape ici. Essayez de le suivre. J'ai pu atteindre cet objectif au niveau 10 d'api.

    Et cette solution suppose que vous êtes censé fermer la boîte de dialogue d'invite par programmation lorsque l'utilisateur clique sur le bouton d'accueil ou si vous devez passer à une activité suivante sans interaction avec l'utilisateur

    La première étape consiste à créer un Spinner personnalisé en étendant la classe Spinner. Disons, j'ai créé une classe appelée CustomSpinner dans le package com.bts.sampleapp

    Ma classe CustomSpinner ressemble à ceci,

     package com.bts.sampleapp; import android.content.Context; import android.util.AttributeSet; import android.widget.Spinner; public class CustomSpinner extends Spinner{ Context context=null; public CustomSpinner(Context context) { super(context); this.context=context; } public CustomSpinner(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public CustomSpinner(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void onDetachedFromWindow() { super.onDetachedFromWindow(); } } 

    Maintenant, dans votre fichier Xml, remplacer l'élément Spinner par ce spinner personnalisé,

      <com.bts.sampleapp.CustomSpinner android:id="@+id/spin" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

    L'étape suivante consiste à initialiser et à configurer l'adaptateur sur cette filière dans votre classe d'activité,

      @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CustomSpinner spin=null; spin=(CustomSpinner)findViewById(R.id.spin); spin.setAdapter(spinnerAdapter); //you can set your adapter here. } 

    L'étape finale consiste à fermer la boîte de dialogue lorsque l'utilisateur clique sur HomeButton ou lorsque l'activité se déplace vers l'arrière-plan. Pour ce faire, nous annulons l'OnPause () comme ceci,

     @Override protected void onPause() { Log.i("Life Cycle", "onPause"); spin.onDetachedFromWindow(); super.onPause(); } 

    Maintenant, dans l'application OnPause (), appelez la méthode spin.onDetachedFromWindow(); Qui fait le travail de fermer la boîte de dialogue rapide pour vous.

    spin.onDetachedFromWindow(); également spin.onDetachedFromWindow(); De n'importe où dans l'Acitivité, fermez la boîte de dialogue d'invite Spinner si elle est ouverte.

    Sur la base de la réponse d'Andro, vous pouvez préférer la réflexion pour pouvoir appeler la méthode protégée sur DetachedFromWindow. Ensuite, il n'est pas nécessaire de sous-classer Spinner, d'adapter la mise en page, etc.

     /** * Hides a spinner's drop down. */ public static void hideSpinnerDropDown(Spinner spinner) { try { Method method = Spinner.class.getDeclaredMethod("onDetachedFromWindow"); method.setAccessible(true); method.invoke(spinner); } catch (Exception e) { e.printStackTrace(); } } 
    • Vous pouvez afficher l' activité en tant que thème de la boîte de dialogue.
    • Remplacez la méthode OnPause .

      Protected null onPause () {super.onPause (); This.finish (); }

    Spinner.clearFocus ();

    C'est une ligne simple pour fermer le spinner de manière programmée

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.