【问题标题】:Android : get the id of dynamically generated ImageButton when clickedAndroid:点击时获取动态生成的ImageButton的id
【发布时间】:2011-12-20 06:37:40
【问题描述】:

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

【问题讨论】:

    标签: android drawable imagebutton


    【解决方案1】:

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

        ImageButton im=new ImageButton(Yourcontext);
        im.setId(giveAnID);
    
         //where you check 
        int theID=im.getId();
    

    【讨论】:

      【解决方案2】:

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

      首先,当动态生成 ImageButton 时,您可以调用 setId() 来为这个 View 设置一个特定的 id 并将其存储在 List 等中。

      然后当你有点击事件(或其他任何事件)时,你可以调用 View 的 getId() 方法来获取 id。

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

      希望这会有所帮助!

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          imageButton.setId(1);
          

          当你的 imageButton 被点击时,你可以得到它,

          int id = imageButton.getId();
          

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              猜你喜欢
              • 2018-06-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-01-21
              • 1970-01-01
              • 1970-01-01
              • 2019-05-14
              相关资源
              最近更新 更多