Android: получить идентификатор динамически генерируемого ImageButton при нажатии - PullRequest
0 голосов
/ 20 декабря 2011

Я сгенерировал динамически ImageButtons с разными ImageResource для каждого ImageButton. Теперь я хочу узнать, какая кнопка ImageButton была нажата, как я могу это определить? Нужна ваша помощь. Спасибо.

Ответы [ 5 ]

4 голосов
/ 20 декабря 2011

вы можете установить идентификатор для каждого созданного ImageButton и getId() для проверки нажатием кнопки

    ImageButton im=new ImageButton(Yourcontext);
    im.setId(giveAnID);

     //where you check 
    int theID=im.getId();
0 голосов
/ 20 декабря 2011

я должен был сделать то же самое, и это то, что я сделал

         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);
        title.setText("" +mediaList.get(i).getTitle());
        subtitle.setText(""+mediaList.get(i).getArtist());
        System.out.println("view added::::");
        view_media_gallery_item.setTag(mediaList.get(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); 
            }
        });
0 голосов
/ 20 декабря 2011

Если ваш код генерирует кнопки imageButtons, то в этом коде вы можете написать что-то вроде

imageButton.setId(1);

и когда на кнопку imageButton нажимают, вы можете получить ее,

int id = imageButton.getId();
0 голосов
/ 20 декабря 2011

Любой ресурс однозначно идентифицируется по его идентификатору, который генерируется в файле R.java. Таким образом, вы можете использовать что-то вроде:

if(image.getId() == R.id.image) {
  // do awesome stuff
}
0 голосов
/ 20 декабря 2011

Чтобы сделать это, вы можете сделать две вещи:

Во-первых, когда динамически генерируется ImageButton, вы можете вызвать setId (), чтобы установить конкретный идентификатор для этого представления и сохранить его в списке и т. Д..

Затем, когда у вас есть событие щелчка (или что-то еще), вы можете вызвать метод getId () представления, чтобы получить идентификатор.

Тогда вы можете сравнивать и делать все, что хотите.

Надеюсь, это поможет!

...