2009-06-11 9 views
6

Je suis l'exemple sur le tutoriel android sur le GridView, mais au lieu de montrer l'image, je veux simplement montrer du texte en utilisant un TextView. il semble que ce soit plus difficile que je ne le pensais. il pourrait sembler que ce soit totalement inutile et qu'il n'y ait pas de cas d'utilisation valide, mais j'essaie de me familiariser avec le sdk.Android: Simple GridView qui affiche le texte dans les grilles

donc mon code est à peu près le même que l'exemple GridView dans http://developer.android.com/guide/tutorials/views/hello-gridview.html, mais au lieu d'utiliser un ImageAdapter, j'ai créé un adaptateur factice comme suit:

public class MyAdapter extends BaseAdapter { 

    private Context context; 
    private String[] texts = {"aaa", "bbb", "ccc", "ddd", "eee", "fff", "eee", "hhh", "iii"}; 

    public MyAdapter(Context context) { 
     this.context = context; 
    } 

    public int getCount() { 
     return 9; 
    } 

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

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

    public View getView(int position, View convertView, ViewGroup parent) { 
     TextView tv; 
     if (convertView == null) { 
      tv = new TextView(context); 
      tv.setLayoutParams(new GridView.LayoutParams(85, 85)); 
     } 
     else { 
      tv = (TextView) convertView; 
     } 

      tv.setText(texts[position]); 
     return tv; 
    } 
} 

tout me semble valide, mais en cours d'exécution cela ne me donne rien à l'écran. et il n'y a pas de message d'erreur. il y a quelques blocs sélectionnables/cliquables (invisibles) si je les clique, mais le texte est évident non montré. Je me demande est ma disposition n'a pas le android: texte causant ce problème? ou autre chose?

tous les commentaires seront appréciés et merci pour votre aide!

Répondre

9

Je ne sais pas ce qui pourrait être la cause de votre problème. J'ai suivi les instructions étape par étape sur la page que vous avez liée pour configurer "Bonjour, GridView", et utilisé votre code et a été en mesure de voir le texte.

Les seules choses que j'ai changé était plutôt que de créer une classe pour ImageAdapter J'ai utilisé votre MyAdapter. Dans l'activité HelloGridView.java onCreate, j'ai utilisé "MyAdapter" plutôt que "ImageAdapter". Je n'ai pas changé la disposition du tout.

alt text http://i41.tinypic.com/2rcwkmw.jpg

Voici une capture d'écran de ce que je reçois lors de l'exécution de votre code.

+0

ahh, merci de confirmer cela. Je viens de redémarrer mon éclipse et en quelque sorte cela fonctionne maintenant. – fei

0

Je vois GridView donc je suppose presque que c'est semblable à SWT?

Si oui, vous devez montrer la relation entre votre point de vue et le parent ViewGroup

0

Je ne pense pas que votre implémentation getItem soit correcte. Haut de ma tête il devrait être

return texts[position]; 
Questions connexes