Android:点击时获取动态生成的ImageButton的id

时间:2011-12-20 06:37:41

标签: android drawable imagebutton

我为每个ImageButton动态生成了带有不同ImageResource的ImageButton。现在我想知道点击了哪个ImageButton,我该如何判断呢? 需要你的帮助。 感谢。

5 个答案:

答案 0 :(得分:4)

您可以为每个已创建的ImageButtongetId()设置一个ID,以便点击检查女巫按钮

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

     //where you check 
    int theID=im.getId();

答案 1 :(得分:0)

为了做到这一点,你可以做两件事:

首先,当动态生成ImageButton时,您可以调用setId()以便为此View设置特定ID并将其存储在List等中。

然后,当您有一个click事件(或其他任何东西)时,您可以调用View的getId()方法来获取id。

然后你可以比较并做任何你想做的事。

希望这有帮助!

答案 2 :(得分:0)

任何资源都由其在R.java文件中生成的id唯一标识。 所以你可以使用类似的东西:

if(image.getId() == R.id.image) {
  // do awesome stuff
}

答案 3 :(得分:0)

如果您的代码生成了imageButtons,那么在此代码中您可以编写类似

的内容
imageButton.setId(1);

当你点击你的imageButton然后你就可以了,

int id = imageButton.getId();

答案 4 :(得分:0)

我必须做同样的事情,这就是我所做的

         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); 
            }
        });