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 / ...