【问题标题】:Way of setting of onClickListener()onClickListener()的设置方式
【发布时间】:2011-11-22 18:27:42
【问题描述】:

我创建了一个 ImageView 对象 (img) 并通过同一对象 (img) 将一些资源传递给带有 for-loop 的线性布局。在循环的每次迭代中,我在 img(img.setOnClickListener()) 上调用 setOnClickListener() 以显示反映循环控制器变量 (i) 值的 Toast。我试过的代码段如下:

for (i = 1; i <= 6; i++) 
              {

    img = new ImageView(this);

    img.setImageResource(R.drawable.thambu);

    body.addView(img);



    this.img.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {


    Toast.makeText(Details.this, Integer.toString(i) , Toast.LENGTH_LONG).show();


                }
            });

        }

问题是每当我点击生成的图像时,我都会看到一个显示 7 的 Toast。

我知道它为什么显示 7。但我想显示被点击的图像的索引。

body 是我传递 ImageView 的线性布局的 id)

我如何在 android 上做到这一点。提前致谢。

【问题讨论】:

    标签: java android for-loop onclick this


    【解决方案1】:
    for (i = 1; i <= 6; i++) 
                  {
    
        img = new ImageView(this);
    
        img.setImageResource(R.drawable.thambu);
    
        body.addView(img);
        img.setTag(i);
    
    
    
        this.img.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
            int tagInt = (int) v.getTag();
    
        Toast.makeText(Details.this, Integer.toString(tagInt) , Toast.LENGTH_LONG).show();
    
    
                    }
                });
    
            }
    

    试试这个,我用过标签..

    【讨论】:

      【解决方案2】:

      其实这是一个比较笼统的 Java 问题。

      您应该执行以下操作:

      for (int i = 1; i <= 6; i++) {
      
        img = new ImageView(this);
      
        img.setImageResource(R.drawable.thambu);
      
        body.addView(img);
      
      
        final int j = i;
        this.img.setOnClickListener(new OnClickListener() {
          public void onClick(View v) {
            Toast.makeText(Details.this, Integer.toString(j) , Toast.LENGTH_LONG).show();
          }
        });
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 2023-04-05
        • 2012-08-19
        • 2013-01-29
        相关资源
        最近更新 更多