2011-04-05 3 views
1

J'ai un GridView dans android et je le peuple avec TextView créé à l'intérieur de la classe redéfinie getView de la classe BaseAdapter. Initialement, la méthode onClick du TextView créé n'est pas implémentée, mais effectue le sens de pressé. Mais quand j'implémente le onClick du TextView, il fait les actions onClick, mais le sens de la pression est parti.TextView cliquable à l'intérieur d'un GridView dans Android

Y at-il un moyen que je puisse avoir le sentiment d'un TextView pressé même avec la méthode onClick implémentée?

Merci

Mise à jour Salut les gens, le faux retour ne fonctionnait pas montre erreur de compilation. Ce que je suis en train de faire est somiething comme ceci: A l'intérieur du BaseAdapter pour alimenter le GridView

public View getView(int position, View convertView, ViewGroup parent) { 
    TextView v; 
    if(convertView == null){ 
     v = new TextView(); 
    }else{ 
     v = (TextView) convertView; 
    } 
} 

A ce stade, le TextView peut être concentré et a le sens de vue cliqué. Mais si je mets en œuvre la onClickListener comme ça, je peux exécuter l'action, mais le sens de vue pressé (ou concentré) est parti:

view.setOnClickListener(new View.OnClickListener() { 
     @Override 
      public void onClick(View v) { 
       deleteHour(mapDays.get(day)); 
      } 
     }); 

Je vois qu'il ya un événement onClick dans GridView et un autre en Affichage. Je pense que lorsque j'implémente la méthode onClick dans TextView, il désactive le onClick dans GridView.

Peut-être que la question est, comment rendre un TextView cliquable en changeant l'état du TextView quand il est cliqué? Avez-vous des idées?

Merci beaucoup pour les réponses!

+0

Voulez-vous dire que vous voulez que la vue texte ait encore le focus? –

+0

Je n'ai pas le popint, mais peut-être que vous devez seulement retourner false à la fin de onClickListener? Ceci est supposé permettre l'exécution d'autres Auditeurs – 2red13

+0

oui, je veux que le textview ait encore le focus! C'est vrai @Zack! @ 2red13 Je vais essayer de retourner false à la fin de l'onClickListener()! Si ça marche je reviens ici pour te le dire! Merci beaucoup! – mlecar

Répondre

4

Je l'ai fait!

La façon dont je l'ai trouvé est de remplacer le setOnItemClickListener du GridView comme ceci:

gridview.setOnItemClickListener(new OnItemClickListener() { 
@Override 
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) { 
} 

J'espère que cela aide tout le monde avec le même problème!

Merci!