Partage
  • Partager sur Facebook
  • Partager sur Twitter

GridView, OnItemListener et Item <> d'images.

    14 septembre 2013 à 16:59:15

    Bonjour.

    J'essaie d'apprendre les différents type de vues, et en particulier Gridview.

    Le guide Android propose un exemple : http://developer.android.com/guide/topics/ui/layout/gridview.html

    Que voici :

    <?xml version="1.0" encoding="utf-8"?>
    <GridViewxmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:columnWidth="90dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    />
    publicvoid onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    GridView gridview =(GridView) findViewById(R.id.gridview);
    gridview.setAdapter(newImageAdapter(this));
    gridview.setOnItemClickListener(newOnItemClickListener(){
    publicvoid onItemClick(AdapterView<?> parent,View v,int position,long id){
    Toast.makeText(HelloGridView.this,""+ position,Toast.LENGTH_SHORT).show();
    }
    });
    }
    publicclassImageAdapterextendsBaseAdapter{
    privateContext mContext;
    publicImageAdapter(Context c){
    mContext = c;
    }
    publicint getCount(){
    return mThumbIds.length;
    }
    publicObject getItem(int position){
    returnnull;
    }
    publiclong getItemId(int position){
    return0;
    }
    // create a new ImageView for each item referenced by the Adapter
    publicView getView(int position,View convertView,ViewGroup parent){
    ImageView imageView;
    if(convertView ==null){// if it's not recycled, initialize some attributes
    imageView =newImageView(mContext);
    imageView.setLayoutParams(newGridView.LayoutParams(85,85));
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setPadding(8,8,8,8);
    }else{
    imageView =(ImageView) convertView;
    }
    imageView.setImageResource(mThumbIds[position]);
    return imageView;
    }
    // references to our images
    privateInteger[] mThumbIds ={
    R.drawable.sample_2, R.drawable.sample_3,
    R.drawable.sample_4, R.drawable.sample_5,
    R.drawable.sample_6, R.drawable.sample_7,
    R.drawable.sample_0, R.drawable.sample_1,
    R.drawable.sample_2, R.drawable.sample_3,
    R.drawable.sample_4, R.drawable.sample_5,
    R.drawable.sample_6, R.drawable.sample_7,
    R.drawable.sample_0, R.drawable.sample_1,
    R.drawable.sample_2, R.drawable.sample_3,
    R.drawable.sample_4, R.drawable.sample_5,
    R.drawable.sample_6, R.drawable.sample_7
    };
    }

    Ça marche avec les images. Mais je voudrais non pas mettre des images, mais du texte, ou des boutons, et dans ce cas, j'ai bien l'affichage, mais je ne peux pas interagir, et savoir quel texte ou bouton a été touché ou cliqué :

    apparemment

    gridview.setOnItemClickListener(newOnItemClickListener(){
    publicvoid onItemClick(AdapterView<?> parent,View v,int position,long id){
    Toast.makeText(HelloGridView.this,""+ position,Toast.LENGTH_SHORT).show();

    ne réagit pas.

    N'ayant vu aucune raison dans le guide Android, je tourne en rond.

    Quelqu'un aurai une idée, ou une explication si c'est impossible.

    Merci.

    • Partager sur Facebook
    • Partager sur Twitter

    GridView, OnItemListener et Item <> d'images.

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown