8 votes

Comment ajouter un onclicklistener à une vue texte générée dynamiquement ?

Dans mon application, je génère une vue de texte dynamique. Je veux ajouter onclickListener à ma vue de texte. Comment puis-je le faire, s'il vous plaît, donnez-moi un indice. Voici le code de la vue texte.

        for (int i = 0; i < subCategory.length; i++) {
        TextView tv = new TextView(this);
        tv.setText(subCategory[i]);
        tv.setId(i);
        sCategoryLayout.addView(tv);

    }

14voto

Hiren Dabhi Points 1721

Voici le code :

TextView tv[] = new TextView[subCategory.length];
    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(onclicklistener);
        }

méthode onclicklistener :

OnClickListener onclicklistener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(v == tv[0]){
            //do whatever you want....
        }
    }
};

J'espère qu'il vous sera utile.

3voto

Khuswant Singh Points 31
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 sur cette classe.

1voto

idiottiger Points 3398

Créez d'abord un récepteur onclick :

 OnClickListener listener = new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            final int id = v.getId();
            //use id to process different text view
        }
    };

puis, à l'aide de tv.setOnClickListener(listener) à écouter.

1voto

Harsh Dev Chandel Points 569
        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);
    }
}

Ce code générique permet d'ajouter dynamiquement une liste d'affichage au clic sur n'importe quelle vue ou groupe de vues.

0voto

Vipin Sharma Points 131

Créer un objet View.onClickListener() "mListener". Ajouter cet objet à tv.setOnClickListener(mListener) dans la boucle for.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X