如何单独向每个ImageView添加onClickListener?

时间:2015-06-21 14:58:44

标签: java android android-imageview onclicklistener

我已经在Android中以编程方式添加了线性布局,并为其添加了ImageView。我使用以下代码进行相同的操作。

LinearLayout layout = (LinearLayout)findViewById(R.id.linear1);     
for(int i=0;i<4;i++)
{
    imagev = new ImageView(this);
    imagev.setLayoutParams(new android.view.ViewGroup.LayoutParams(300,150));
    imagev.setMaxHeight(600);
    imagev.setMaxWidth(600);
    layout.addView(imagev);
}

2 个答案:

答案 0 :(得分:1)

您可以这样做:

myClickListener1 = new View.OnClickListener ...
myClickListener2 ...
myClickListener3 ...
myClickListener4 ...

for(int i=0;i<4;i++)
{
    imagev = new ImageView(this);
    imagev.setLayoutParams(new android.view.ViewGroup.LayoutParams(300,150));
    imagev.setMaxHeight(600);
    imagev.setMaxWidth(600);
    switch(i){
            case 0: imagev.setOnClickListener(myClickListener1);
            break;
            case 1: ...
            ...
    }
    layout.addView(imagev);
}

答案 1 :(得分:1)

如果我要实现这个,我会给每个图像视图一个特定的标记,然后为每个图像视图设置相同的onClickListener。然后在onClickListener中,我会检查被点击的imageview的标签,并根据点击的图像视图执行操作。

None

这样可以避免使用4个不同的onClickListener,并为您提供更清晰的代码。