2011-02-15 3 views
0

Alors, y a-t-il un moyen facile d'identifier le tablerow cliqué? J'ai un tablelayout avec des données statiques, comme un menu. Lorsque l'utilisateur clique sur un tablerow, je veux démarrer l'activité spécifiée. J'ai googlé quelques heures mais tout le monde semble utiliser la vue à l'intérieur de la propriété de texte tablerows pour l'identifier, ce qui est nul si vous traduisez l'application. J'ai essayé de trouver une propriété getIndex du TableLayouit mais pas de chance, et la propriété .getId de vues est inutile.Android identifier tablerow

Je suppose que la solution est d'avoir des onclicklisteners spécifiques sur chaque tablerow mais cela va générer beaucoup de code (inutile) et il doit y avoir une meilleure solution?

Cordialement

Répondre

1

si vous faites votre activité comme une extension de ListView() et vous mettez vos options dans une liste que vous pouvez réellement remplacer la méthode onListItemClick public void (parent ListView, Vue v, position int, long id) { } et l'attribut de position de cette méthode est un int qui indique la ligne sur laquelle vous cliquez réellement c'est une solution qui fonctionne vraiment, donc si votre mise en page n'est pas trop compliquée je vous suggère de faire une liste et remplacez cette méthode!

ok, je vais essayer un autre depuis que l'on vous pose d'autres problèmes, vous pourriez faire quelque chose comme ceci:

dans le onCreate():

firstTextVIew = (TextView) findViewById(R.id.firstText); 

firstTextView.setOnClickListener(this); 

secondTextVIew = (TextView) findViewById(R.id.secondText); 

secondTextView.setOnClickListener(this); 

après la onCreate():

public void onClick(View v) {  

    /*make a list of cases for any text view, where __TextView is the name you gave to the textview when you made the getViewById() on the start of the activity*/ 
     if(v == firstTextView){   
      //start activity 
     } 
    if(v == secondTextView){   
      //start activity 
     } 
    } 
+0

Salut, et merci. Je viens de passer de ListView à TableLayout parce que j'avais d'autres problèmes avec ListView, comme rendre mon background dessinable et empêcher le Listview de remplir tout l'écran: S – elwis

+0

getId() m'a donné des nombres étranges, comme "212221". .pas les ID que j'ai mis dans mon xml .. sinon le onClick a été attrapé par le textView à l'intérieur au lieu du tablerow? ..hmmm – elwis

+0

J'ai édité ma réponse, essayez ce nouveau, je suis assez sûr que cela fonctionne! – scambione

Questions connexes