Dans mon application générant une vue textuelle dynamique. Je veux ajouter Onclicklistener à ma vue texte. Comment puis-je le faire s'il vous plaît donnez-moi un indice. Ici le code dur pour TextView.
for (int i = 0; i < subCategory.length; i++) {
TextView tv = new TextView(this);
tv.setText(subCategory[i]);
tv.setId(i);
sCategoryLayout.addView(tv);
}
9 Réponses :
Créer une vue.onClickListener () objet "mlistener". Ajoutez cet objet à tv.setonclicklistener (mlistener) pour boucle. P>
Il n'est pas différent de celui que vous effectuez lorsque vous créez du texte dans XML:
tv[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//your logic. } });
Il ne faudra que surtout View générée.
Voici Code:
OnClickListener onclicklistener = new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == tv[0]){
//do whatever you want....
}
}
};
TextView TV [] = Nouveau TextView [sous-catégorie.length]; cette chose montrant une erreur
suncategory.length ---> est la longueur de TextView. est dynamique que vous voulez. Je pense que le problème est de longueur. Mettez une valeur constante dire 5 et vérifiez.
Créez d'abord un auditeur onclick: puis, en utilisant tv.setonclicklistener (écouteur) code> pour écouter. p> p>
Vous devez appeler SetonClickListener (..) sur l'instance TextView.
Dans l'échantillon ci-dessous, nous utilisons une classe interne anonyme
for(int i = 0 ;i<mediaList.size();i++){
view_media_gallery_item = LayoutInflater.from(view.getContext()).inflate(R.layout.e_media_gallery_item, null);
TextView title = (TextView) view_media_gallery_item.findViewById(R.id.media_gallery_item_title);
TextView subtitle = (TextView) view_media_gallery_item.findViewById(R.id.media_gallery_item_subtitle);
ImageView flux_Title_Image =(ImageView) view_media_gallery_item.findViewById(R.id.media_gallery_item_img);
title.setId(i+100);
subtitle.setId(i+1000);
flux_Title_Image.setId(2000+i);
view_media_gallery_item.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("view media clicked");
Media m = (Media )v.getTag();
medialistner.setOnItemclick(m);
}
});
// flux_Title_Image.setBackgroundDrawable(mediaList.get(i).getThumb());
media_Gallery_List.addView(view_media_gallery_item);
}
}
this generic code for dynamically adding on click listner on any view or view group dynamically
for (int i = 0; i <subCategory.length; i++) {
tv[i] = new TextView(this);
tv[i].setText(subCategory[i]);
tv[i].setId(i);
sCategoryLayout.addView(tv[i]);
tv[i].setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
v.getId(); //here u can get the id on that basis u can perform any action
//dont forget to implements OnClickListener in your activity
}
for (int i = 0; i < subCategory.length; i++) {
TextView tv = new TextView(this);
tv.setText(subCategory[i]);
tv.setId(i);
tv.setOnClickListener(this);
sCategoryLayout.addView(tv);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case 1:
//Write Code For Click Here
break;
default:
break;
}
}
Impelement OnClickListner on this class.
Oui, j'ai aussi le même problème, mais j'ai eu la solution et cela a fonctionné pour moi
J'ai ajouté TextView en mode exécuté et aussi à les obtenir Cliquez ci-dessous. P>
for (int i = 0; i < albumItemList.size(); i++) {
toplayout = getActivity().getLayoutInflater().inflate(R.layout.addphotoalbumlistinfater, null);
newTV = (TextView)toplayout.findViewById(R.id.textView) ;
textViewcount= (TextView)toplayout.findViewById(R.id.textViewcount) ;
ll = (RelativeLayout) toplayout.findViewById(R.id.mainitemlist) ;
ll.setTag("position"+i);
newTV.setText(albumItemList.get(i).getAlbumName());
textViewcount.setText(""+albumItemList.get(i).getCount());
ll.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(getActivity(),""+v.getTag(),Toast.LENGTH_SHORT).show();
}
});
linearLayoutforaddchild.addView(toplayout);
}
Vérifiez ce lien Stackoverflow.com / Questions / 10482099 / ...
Vérifiez ci-dessous lien Stackoverflow.com / Questions / 10482099 / ...