2013-08-20 4 views
0

J'avais suivi the tutorial about the GridView. J'essaye de lier un ImageView avec un GridView d'un dossier de xml de disposition par l'intermédiaire d'un Adaptateur. J'ai capturé ImageView à partir de la mainActivity et j'ai essayé les deux façons en entrant ImageView par le constructeur de l'ImageAdapter ou en rendant le ImageView statique. Les deux retournent une exception d'exécution.Liaison d'un ImageView avec un GridView

//capturing imageView in the mainActivity 

     public static ImageView IMAGE_VIEW; 
      IMAGE_VIEW=(ImageView) findViewById(R.id.imageView1); 



public class ImageAdapter extends BaseAdapter{ 
    private Context mContext; 

public ImageAdapter(Context c) { 
     mContext = c; 
    } 
public int getCount() { 
     // It should return 16 ImageViews 
     return 16; 
    } 
. 
. 
. 

    public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
      if (convertView == null) { // if it's not recycled, initialize some attributes 
       imageView = new ImageView(mContext); 
       imageView.setLayoutParams(new GridView.LayoutParams(150, 150)); 
       imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
       imageView.setPadding(20, 20, 4, 4); 
      } else { 
       imageView = (ImageView) convertView; 
      } 


       imageView=MainActivity.IMAGE_VIEW; //I suppose here is the problem 

    // the code underneath works fine for an Image File not for the ImageView  
    // imageView.setImageResource(R.drawable.crazy); 


      return imageView; 
     } 
} 

Quelle est l'erreur ici? Quelle serait la solution?

Répondre

-1

Essayez de faire comme ça. Dans votre principal fichier xml:

<GridView 
    android:id="@+id/gridView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
</GridView> 

Dans votre fichier xml qui décrit élément de grille:

<TextView 
    android:id="@+id/item_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/ic_launcher"> 
</TextView> 

Adaptateur:

// references to our images 
public int[] mThumbIds = { 
     R.drawable.icon_1, 
     R.drawable.icon_2, 
     R.drawable.icon_3, 
     R.drawable.icon_4, 
     R.drawable.icon_5, 
     R.drawable.icon_6 
}; 

dans la méthode getView:

TextView item = (TextView) view.findViewById(R.id.item_title); 
    item.setBackgroundResource(mThumbIds[position]); 

en Activité:

// set grid menu 
GridView gridview = (GridView) view.findViewById(R.id.gridView1); 
YourAdapter adapter = new YourAdapter(); //put here your arguments 
gridview.setAdapter(leftMenuAdapter); 
Questions connexes