如何识别点击了哪个“视图”?

时间:2014-02-26 20:58:49

标签: java android onclicklistener

看下面的android代码。 IMGSImageView的二维数组。我在onClickListener循环中向其添加for。如何识别哪个view被点击了?我不想使用view.getId();迭代所有36个元素。

private static final Integer[] Icons = {
    R.drawable.r,
    R.drawable.re,
    R.drawable.u,
    R.drawable.et,  
    R.drawable.w,
    R.drawable.ya
};
private ImageView[][] IMGS= new ImageView[6][6];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    IMGS[0][0] = (ImageView) findViewById(R.id.immg11);



    for (int i=0; i < 6; i++)
    {
    for (int j=0; j<6; j++)
    {

    Drawable d = getResources().getDrawable(Icons[i]);

    IMGS[i][j].setImageDrawable(d);

     IMGS[i][j].setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
//HOW TO KNOW WHICH VIEW HAS BEEN CLICKED ?
            }
    });
    }
    }



    }

1 个答案:

答案 0 :(得分:4)

注意传递给View的{​​{1}}参数?这是被点击的视图。

您可以拨打onClick(View v)来检索其ID。

  

同意,但如果我使用这种方法,我必须迭代36个元素。有没有办法知道点击IMGS的索引?

您可以使用v.getId()在每个视图中保存所需的数据,然后使用setTag()检索它。