Obtenir un contexte d'activité dans un adaptateur à partir d'un fragment

J'ai un Fragment avec un ListView . Dans la carte, je souhaite créer une boîte de dialogue.

 class ViewHolder { ... @Override public void onClick(View v) { ... AlertDialog.Builder builder = new AlertDialog.Builder(mContext); ... } ... } 

mContext est le Context de mon Fragment , que je sauvegarde global lorsque l'adaptateur est créé. Je reçois l'erreur.

  • Bibliothèque de support Android v7: Erreur lors de la récupération du parent pour l'élément
  • CoordinatorLayout avec RecyclerView et EditText de taille inférieure
  • Obtenir des images de l'image vidéo dans Android
  • Existe-t-il un moyen de transmettre un message d'un navigateur Android vers une application?
  • "L'activité exportée ne nécessite pas d'autorisation" lors de la tentative de lancement à partir d'un URI
  • "Préférons d'exécuter le processeur dague sur cette classe à la place" à Kotlin
  • unable to add window -- token null is not for an application

    La méthode getActivity() n'est pas disponible, donc comment obtenir le Context de mon Activity ?

  • Eclipse ne génère pas MainActivity.java & activity_main.xml
  • BEGIN_OBJECT attendu, mais BEGIN_ARRAY a eu lieu à la ligne 1, colonne 2, chemin $
  • Android Studio collé sur "Gradle: résoudre les dépendances" _debugCompile '"ou" détachéConfiguration1 "
  • L'application Android Wear n'est pas installée
  • Aucune version mise en cache de com.android.tools.build:gradle:0.9.1 disponible pour le mode hors connexion
  • L'écran noir avant que l'écran Splash n'apparaisse sur Android
  • 2 Solutions collect form web for “Obtenir un contexte d'activité dans un adaptateur à partir d'un fragment”

    Lorsque vous créez votre adaptateur, qu'est-ce que vous passez en tant que contexte? Essayez de passer this si vous ne le faites pas. Encore plus de code serait utile.

    Si vous disposez d'un adaptateur personnalisé, modifiez le constructeur pour exiger le Context comme paramètre.

     public CustomAdapter(Context context, List<Item> items) { } 

    Ensuite, créez une variable Instance pour stocker le contexte via le constructeur.

     private Context mContext; //instance variable public CustomAdapter(Context context, List<Item> items) { //some code this.mContext= context; } 

    Et maintenant, vous pouvez utiliser la variable mContext de n'importe où dans votre adaptateur.

    Pour créer l'adaptateur, passez simplement «ceci» si créé à partir d'une activité, ou getActivity() si créé à partir d'un fragment.

     mAdapter = new CustomAdapter(this, mArrayItems); 

    J'espère que cela pourra aider.

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