2015-09-18 1 views
0

J'essaie d'extraire des données de movieDatabaseApi et de les afficher dans un GridView à l'aide de la bibliothèque Picasso. Utilisation d'AsyncTask J'ai réussi à obtenir les URL dont j'ai besoin (je peux les voir dans un journal). De ce point, je suis perdu.Nul pointeur Exception lors de la définition de ImageAdapter à partir de la tâche Async - Android

 @Override 
    protected void onPostExecute(String[] arrayList) { 
     Log.v(LOG_TAG,arrayList[0]); 

     mImageAdapter = new ImageAdapter(getActivity(), arrayList); 
    } 

J'ai changé ImageAdapter d'accepter ce tableau comme un argument, mais en essayant de mettre l'adaptateur à GRIDVIEW de cet endroit me donne NullPointerException. Même si je parviens à joindre un nouvel adaptateur, quelle est la prochaine étape? Comment accéder à ce tableau dans l'adaptateur? Ceci est mon code actuel Adaptateur:

public class ImageAdapter extends BaseAdapter { 
    private Context mContext; 
    private String[] resultingArray; 

    public ImageAdapter(Context c, String[] arrayList) { 
     mContext = c; 
     resultingArray = arrayList; 
    } 

    @Override 
    public int getCount() { 
     return resultingArray.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    // create a new ImageView for each item referenced by the Adapter 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 

     String url="zero"; 
     url = resultingArray[position]; 
     Log.v("check urls",url); 
     if (convertView == null) { 
      // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setAdjustViewBounds(true); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     Picasso.with(mContext).load(url).into(imageView); 
     return imageView; 

    } 
} 
+0

pouvez-vous s'il vous plaît poster votre code complet afin que nous sachions ce que vous avez mal fait. –

+0

Ajoutez 'yourGridView.setAdapter (mImageAdapter);' après 'mImageAdapter = new ImageAdapter (getActivity(), arrayList);'. Vous devez également gonfler votre élément GridView dans la méthode 'getView()'. – Rami

Répondre