如何将 onClickListener 分别添加到每个 ImageView?
How can I add onClickListener to each ImageView separately?
我以编程方式在 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);
}
你可以这样做:
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);
}
如果我要实现这个,我会给每个图像视图一个特定的标签,然后为每个图像视图设置相同的 onClickListener。然后在 onClickListener 中,我会检查被点击的图像视图的标签,并根据被点击的图像视图执行操作。
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);
imagev.setTag(i);
imagev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(Integer.valueOf(v.getTag())) {
case 0: ...
break;
case 1: ...
break;
}
}
layout.addView(imagev);
}
这将避免必须有 4 个不同的 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);
}
你可以这样做:
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);
}
如果我要实现这个,我会给每个图像视图一个特定的标签,然后为每个图像视图设置相同的 onClickListener。然后在 onClickListener 中,我会检查被点击的图像视图的标签,并根据被点击的图像视图执行操作。
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);
imagev.setTag(i);
imagev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(Integer.valueOf(v.getTag())) {
case 0: ...
break;
case 1: ...
break;
}
}
layout.addView(imagev);
}
这将避免必须有 4 个不同的 onClickListener,并为您提供一些更清晰的代码。