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.

  • Will Xamarin Android exécutera OnCreateView lorsque le constructeur IntPtr est appelé?
  • Spinner avec On Click Listener
  • Comment ouvrir les paramètres d'Android Phone sur un bouton cliquez sur notre application Android
  • Gers désérialisation de List <String> dans realmList <RealmString>
  • Exception de SQLite SQL "no such table"
  • Crash in Marshmallow Fragment Activity for Maps
  • 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 ?

  • Masquer le bouton du microphone Le clavier virtuel d'Android
  • Déterminer le certificat de signature d'un APK
  • Android - java.lang.SecurityException: refus de permission: Intention initiale
  • Le service Google Play cesse de fonctionner lorsque je fais un achat avec android.test.purchased
  • Comment faire la boucle / répéter la sonnerie actuelle dans Android à partir d'une application?
  • Comment tuer ma propre activité - la manière la plus difficile
  • 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.